예제 #1
0
 /**
  * Initialize the form
  *
  * @return void
  */
 public function init()
 {
     parent::init();
     $view = $this->getView();
     // create new element
     $id = $this->createElement('hidden', 'id', array('decorators' => array('ViewHelper')));
     $this->addElement($id);
     // create new element
     $name = $this->createElement('text', 'page_name', array('label' => $view->getTranslation('Page Name'), 'required' => true, 'filters' => array('StringTrim', 'StripTags'), 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(4, Model_Page::PAGE_NAME_LENGTH)), array('Regex', true, array('pattern' => Model_Page::PAGE_NAME_REGEX, 'messages' => array('regexNotMatch' => Model_Page::PAGE_NAME_REGEX_NOTMATCH)))), 'attribs' => array('size' => 50), 'order' => 0));
     $this->addElement($name);
     // add options for parent page
     $multiOptions = array(0 => $view->getTranslation('Site Root'));
     $mdlIndex = new Model_Page();
     $index = $mdlIndex->getIndex(0, 'name');
     if (is_array($index)) {
         foreach ($index as $id => $page) {
             $multiOptions[$id] = $page;
         }
     }
     // create new element
     $parentId = $this->createElement('select', 'parent_id', array('label' => $view->getTranslation('Parent page') . ':', 'required' => true, 'multiOptions' => $multiOptions, 'order' => 1));
     $this->addElement($parentId);
     // add options for template
     $multiOptions = array();
     $templateConfig = Zend_Registry::get('config')->template;
     $templates = Digitalus_Filesystem_Dir::getDirectories(BASE_PATH . '/' . $templateConfig->pathToTemplates . '/public');
     foreach ($templates as $template) {
         $designs = Digitalus_Filesystem_File::getFilesByType(BASE_PATH . '/' . $templateConfig->pathToTemplates . '/public/' . $template . '/pages', 'xml');
         if (is_array($designs)) {
             foreach ($designs as $design) {
                 $design = Digitalus_Toolbox_Regex::stripFileExtension($design);
                 $multiOptions[$template . '_' . $design] = $view->getTranslation($template) . ' / ' . $view->getTranslation($design);
             }
         }
     }
     // create new element
     $contentTemplate = $this->createElement('select', 'content_template', array('label' => $view->getTranslation('Template') . ':', 'required' => true, 'multiOptions' => $multiOptions, 'order' => 2));
     $this->addElement($contentTemplate);
     // create new element
     $continue = $this->createElement('checkbox', 'continue_adding_pages', array('label' => $view->getTranslation('Continue adding pages') . '?', 'order' => 3));
     $this->addElement($continue);
     // create new element
     $showOnMenu = $this->createElement('checkbox', 'show_on_menu', array('label' => $view->getTranslation('Show Page on menu') . '?', 'order' => 4));
     $this->addElement($showOnMenu);
     // create new element
     $publish = $this->createElement('checkbox', 'publish_pages', array('label' => $view->getTranslation('Publish page instantly') . '?', 'order' => 5));
     $this->addElement($publish);
     // create new element
     $submit = $this->createElement('submit', 'submitPageForm', array('label' => $view->getTranslation('Submit'), 'attribs' => array('class' => 'submit'), 'order' => 1000));
     $this->addElement($submit);
     $this->addDisplayGroup(array('form_instance', 'id', 'page_name', 'parent_id', 'content_template', 'continue_adding_pages', 'show_on_menu', 'publish_pages', 'submitPageForm'), 'createPageGroup');
 }
예제 #2
0
 public function SelectPage($name, $value = null, $attribs = null)
 {
     $mdlIndex = new Model_Page();
     $index = $mdlIndex->getIndex(0, 'name');
     $pages = array();
     $pages[0] = $this->view->getTranslation('Site Root');
     if (is_array($index)) {
         foreach ($index as $id => $page) {
             $pages[$id] = $page;
         }
     }
     return $this->view->formSelect($name, $value, $attribs, $pages);
 }
예제 #3
0
파일: Page.php 프로젝트: ngukho/ducbui-cms
 public function init()
 {
     $id = $this->createElement('hidden', 'id');
     $id->setDecorators(array('ViewHelper'));
     $this->addElement($id);
     $name = $this->createElement('text', 'page_name');
     $name->addFilter('StripTags');
     $name->setRequired(true);
     $name->setLabel('Page Name: ');
     $name->setAttrib('size', 50);
     $name->setOrder(0);
     $this->addElement($name);
     $parentId = $this->createElement('select', 'parent_id');
     $parentId->setLabel($this->getView()->getTranslation('Parent page') . ':');
     $mdlIndex = new Model_Page();
     $index = $mdlIndex->getIndex(0, 'name');
     $parentId->addMultiOption(0, $this->getView()->getTranslation('Site Root'));
     if (is_array($index)) {
         foreach ($index as $id => $page) {
             $parentId->addMultiOption($id, $page);
         }
     }
     $parentId->setOrder(1);
     $this->addElement($parentId);
     $contentTemplate = $this->createElement('select', 'content_template');
     $contentTemplate->setLabel($this->getView()->getTranslation('Template') . ':');
     $templateConfig = Zend_Registry::get('config')->template;
     $templates = Digitalus_Filesystem_Dir::getDirectories(BASE_PATH . '/' . $templateConfig->pathToTemplates . '/public');
     foreach ($templates as $template) {
         $designs = Digitalus_Filesystem_File::getFilesByType(BASE_PATH . '/' . $templateConfig->pathToTemplates . '/public/' . $template . '/pages', 'xml');
         if (is_array($designs)) {
             foreach ($designs as $design) {
                 $design = Digitalus_Toolbox_Regex::stripFileExtension($design);
                 $contentTemplate->addMultiOption($template . '_' . $design, $template . ' / ' . $design);
             }
         }
     }
     $contentTemplate->setOrder(2);
     $this->addElement($contentTemplate);
     $continue = $this->createElement('checkbox', 'continue_adding_pages');
     $continue->setLabel($this->getView()->getTranslation('Continue adding pages') . '?');
     $continue->setOrder(3);
     $this->addElement($continue);
     $submit = $this->createElement('submit', $this->getView()->getTranslation('Submit'));
     $submit->setOrder(1000);
     $this->addElement($submit);
 }
예제 #4
0
 public function selectPage($name, $value = null, $attribs = null)
 {
     $mdlIndex = new Model_Page();
     $index = $mdlIndex->getIndex(0, 'name');
     $options = array();
     $options[0] = $this->view->getTranslation('Site Root');
     if (is_array($index)) {
         foreach ($index as $id => $page) {
             $options[$id] = $page;
         }
     }
     $form = new Digitalus_Form();
     $select = $form->createElement('select', $name, array('multiOptions' => $options));
     if (is_array($attribs)) {
         $select->setAttribs($attribs);
     }
     return $select;
 }