/** * 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; } }