Exemple #1
0
 /**
  * getter na form editace stranky struktury
  * @return LBoxForm
  */
 public function getForm()
 {
     try {
         if ($this->form instanceof LBoxForm) {
             return $this->form;
         }
         if ($this->getPage() && $this->getPage()->config->isHomePage()) {
             return NULL;
         }
         $controls["id"] = new LBoxFormControlFillHidden("id", "", $this->getPage() ? $this->getPage()->config->getParamDirect("id") : NULL);
         $controls["id"]->setDisabled();
         $subControls["base"]["heading"] = new LBoxFormControlFill("heading", "heading", $this->getPage() ? $this->getPage()->config->getParamDirect("heading") : LBoxUtil::getNameByURLString($this->getURLPartCurrentLast()));
         $subControls["base"]["heading"]->setRequired();
         $subControls["base"]["heading"]->setTemplateFileName("webui_structure_heading.html");
         $subControls["base"]["title"] = new LBoxFormControlFill("title", "title", $this->getPage() ? $this->getPage()->config->getParamDirect("title") : NULL);
         $subControls["base"]["url"] = new LBoxFormControlFill("url", "url", preg_replace("/(\\/+)/", "", $this->getURLPartCurrentLast()));
         $subControls["base"]["url"]->setRequired();
         $subControls["base"]["url"]->addFilter(new LBoxFormFilterTrim());
         $subControls["base"]["url"]->addFilter(new LBoxFormFilterURLStringFromName());
         $filterURLFromHeading = new LBoxFormFilterURLFromName($subControls["base"]["url"]);
         $filterURLFromHeading->setControlName($subControls["base"]["heading"]);
         $subControls["base"]["url"]->addFilter($filterURLFromHeading);
         $subControls["base"]["url"]->setTemplateFileName("webui_structure_url.html");
         $subControls["base"]["url"]->addValidator(new WebUIFormControlValidatorStructureItemURL());
         $validatorPageExistsByURL = new WebUIFormControlValidatorStructurePageExistsByURL($this->getPage() ? $this->getPage()->config->getParamDirect("id") : NULL);
         $subControls["base"]["url"]->addValidator($validatorPageExistsByURL);
         if (!$this->getPage() || preg_match("/" . $this->fileNamesTemplatePagesTypesPattern . "/", $this->getPage()->config->template)) {
             $subControls["base"]["type"] = new LBoxFormControlChooseOne("type", "typ", $this->getPageTypeCurrent());
             $subControls["base"]["type"]->setRequired();
             foreach ($this->getPagesTypes() as $type) {
                 $subControls["base"]["type"]->addOption(new LBoxFormControlOption($type, $type));
             }
         }
         $subControls["structure"]["in_menu"] = new LBoxFormControlChooseOne("in_menu", "v menu", $this->getPage() ? $this->getPage()->config->getParamDirect("in_menu") : 0);
         $subControls["structure"]["in_menu"]->setRequired();
         foreach ($this->getOptionsInMenu() as $k => $option) {
             $subControls["structure"]["in_menu"]->addOption(new LBoxFormControlOption($k, $option));
         }
         if (count($this->getOptionsInMenu()) < 3) {
             $subControls["structure"]["in_menu"]->setTemplateFileName("lbox_form_control_choose_one_radio.html");
         } else {
             $subControls["structure"]["in_menu"]->setTemplateFileName("lbox_form_control_choose_one_select.html");
         }
         $subControls["structure"]["parent_id"] = new LBoxFormControlChooseOne("parent_id", "parent", $this->getPage() && $this->getPage()->config->hasParent() ? $this->getPage()->config->getParent()->id : NULL);
         $subControls["structure"]["parent_id"]->setTemplateFileName("lbox_form_control_choose_one_select.html");
         $this->fillControlChooseParentID($subControls["structure"]["parent_id"]);
         $subControls["structure"]["move_before"] = new LBoxFormControlChooseOne("move_before", "přesunout před", $this->getPage() ? $this->getValueCurrentMoveBefore() : NULL);
         $subControls["structure"]["move_before"]->setTemplateFileName("lbox_form_control_choose_one_select.html");
         $this->fillControlChooseMoveBefore($subControls["structure"]["move_before"]);
         $subControls["seo"]["keywords"] = new LBoxFormControlFill("keywords", "keywords", $this->getPage() ? $this->getPage()->config->getParamDirect("keywords") : NULL);
         $subControls["seo"]["keywords"]->setTemplateFileName("webui_structure_keywords.html");
         $subControls["seo"]["description"] = new LBoxFormControlFill("description", "description", $this->getPage() ? $this->getPage()->config->getParamDirect("description") : NULL);
         $subControls["seo"]["description"]->setTemplateFileName("webui_structure_description.html");
         $validatorPageExistsByURL->setControlParentID($subControls["structure"]["parent_id"]);
         foreach ($subControls as $themeName => $theme) {
             foreach ($theme as $subControl) {
                 if (!array_key_exists($themeName, $controls) || !$controls[$themeName] instanceof LBoxFormControlMultiple) {
                     $controls[$themeName] = new LBoxFormControlMultiple($themeName);
                     $controls[$themeName]->setTemplateFileName("webui_structure_multi.html");
                 }
                 $controls[$themeName]->addControl($subControl);
             }
         }
         $this->form = new LBoxForm("webui-structure-item-" . LBoxFront::getPage()->id, "post", "upravit stranku", "uložit");
         $processor = new WebUIFormProcessorStructureItem();
         $processor->setFileNamesTemplatePagesTypesPattern($this->fileNamesTemplatePagesTypesPattern);
         //$this->form ->addProcessor(new LBoxFormProcessorDev());
         $this->form->addProcessor($processor);
         foreach ($controls as $control) {
             $this->form->addControl($control);
         }
         return $this->form;
     } catch (Exception $e) {
         throw $e;
     }
 }