Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Application_Form_Photogallery extends Application_Form_Base
- {
- private $_options = array(
- 'type' => 'add',
- 'photo_file' => null,
- 'last_dep_id'=> null
- );
- public function setUserOptions($opt_list)
- {
- if ($opt_list instanceof Zend_Config) {
- $opt_list = $opt_list->toArray();
- } elseif (!is_array($opt_list)) {
- throw new Zend_Application_Exception('Invalid options argument provided');
- }
- foreach ($opt_list as $k => $v) {
- if (array_key_exists($k, $this->_options)) {
- $this->_options[$k] = $v;
- }
- }
- return $this;
- }
- public function __construct($opt_list)
- {
- //var_dump($opt_list);
- $this->setUserOptions($opt_list);
- $this->init();
- }
- public function init()
- {
- //var_dump($opt_list);
- //$this->setUserOptions($opt_list);
- $this->setName('form_photogallery_photo');
- $this->setAttrib('enctype', 'multipart/form-data');
- $pgdeps = new Application_Model_PhotogalleryDeps();
- $deps = $pgdeps->getAllPhotogalleryDeps();
- $values = array();
- foreach ($deps as $key=>$value)
- {
- $values[$value['dep_id']] = $value['name'];
- }
- $pdep = new Zend_Form_Element_Select('dep_id');
- $pdep->setLabel('Галерея')
- ->addMultiOptions($values);
- $preview = new Zend_Form_Element_Textarea('preview');
- $preview->setLabel('Описание к фото')
- ->setAttrib('id', 'preview_editor')
- ->addFilter('StringTrim');
- $photo = new Zend_Form_Element_File('photo');
- $photo->setLabel('Фото')
- ->addFilter(new Turist_Filter_File_SetUniqueName(array( 'nameLength' => 10 )))
- ->addFilter(new Turist_Filter_File_ImageResize(
- array(
- array(
- 'targetDir' => PUBLIC_PATH . '/userfiles/images/full',
- 'newSize' => "800*533",
- 'type' => 'proportional'
- ),
- array(
- 'targetDir' => PUBLIC_PATH . '/userfiles/images/thumb',
- 'newSize' => "80*80",
- 'type' => 'thumb'
- )
- )
- ));
- //->setDestination(PUBLIC_PATH . '/userfiles/images');
- //->addFilter('Rename', 'new.jpg');
- $pos = new Zend_Form_Element_Text('pos');
- $pos->setLabel('Порядок сортировки')
- ->addFilter('StringTrim')
- ->addFilter('StripTags')
- ->setValue('0');
- $slideshow = new Zend_Form_Element_Checkbox('slideshow');
- $slideshow->setLabel('В слайдшоу на главной')
- ->setCheckedValue('on')
- ->setUncheckedValue('');
- $submit = new Zend_Form_Element_Submit('submit');
- $submit->setLabel('Отправить');
- $this->addElements(array($pdep, $preview, $photo, $pos, $slideshow, $submit));
- parent::init();
- if ($this->_options['type'] == 'edit' && !is_null($this->_options['photo_file'])) {
- $photo->setDescription($this->_options['photo_file']);
- $photo->setDecorators(array(
- array('ViewScript', array('viewScript' => 'decorators/file.phtml')),
- 'File',
- 'Errors',
- array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')),
- array('Label', array('tag' => 'td')),
- array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
- ));
- } else {
- $photo->setDecorators(array(
- 'File',
- 'Errors',
- array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')),
- array('Label', array('tag' => 'td')),
- array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
- ));
- }
- // для content подключаем отдельный декоратор
- $preview->setDecorators(array(new Application_Form_Decorators_Ckeditor()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement