static function linkFor($type, $parameters = null, $class_attrib = null) { static $oTopCatM, $oCatZeroM, $oPageM; if (is_null($oTopCatM)) { $oTopCatM = new \App\Model\Topcat(); $oCatZeroM = new \App\Model\Catzero(); $oPageM = new \App\Model\Page(); } if (!is_array($parameters)) { $parameters = array($parameters); } // add lookup for APP_Interface_Routable $info = \App\Helper::requestInfo(); $helper = new \App\Helper\View(); switch (strtolower($type)) { case "pages": $page = $oPageM->find($parameters["id"]); if (empty($page)) { throw new PPI_Exception("No Page Found for ID {$parameters['id']}"); } $catzero = $oCatZeroM->find($page["catzero_id"]); $topcat = $oTopCatM->find($page["topcat_id"]); $link = $helper->makePageIDLink($topcat["title"], $catzero["title"], $page["title"], $page["page_id"]); if (!isset($parameters["text"])) { $parameters["text"] = $page["title"]; } break; case "topcats": $topcat = $oTopCatM->find($parameters["id"]); if (empty($topcat)) { throw new PPI_Exception("No Topcat Found for ID {$parameters['id']}"); } $link = $helper->makeTopcatLink($topcat["title"], $topcat["id"]); if (!isset($parameters["text"])) { $parameters["text"] = $topcat["title"]; } break; case "catzero": $catzero = $oCatZeroM->find($parameters["id"]); if (empty($catzero)) { throw new PPI_Exception("No Catzero Found for ID {$parameters['id']}"); } $topcat = $oTopCatM->find($catzero["topcat_id"]); $link = $helper->makeCatzeroLink($topcat["title"], $catzero["title"], $catzero["id"]); if (!isset($parameters["text"])) { $parameters["text"] = $catzero["title"]; } break; case "search_terms": $link = "/search/index/{$parameters['title']}"; if (!isset($parameters["text"])) { $parameters["text"] = $parameters["title"]; } break; default: $link = "#err-no-handler:{$type}"; } return "<a href=\"{$link}\">{$parameters['text']}</a>"; }
/** * Edit category */ protected function createComponentEditForm() { $pages = new \App\Model\Page($this->database); $categoryAll = new \App\Model\Menu($this->database); $category = $this->database->table("menu")->get($this->presenter->getParameter("id")); $categories = $categoryAll->getAll(); unset($categories[$category->id]); $form = new \Nette\Forms\BootstrapUIForm(); $form->setTranslator($this->presenter->translator); $form->getElementPrototype()->class = "form-horizontal"; $form->getElementPrototype()->role = 'form'; $form->getElementPrototype()->autocomplete = 'off'; $form->addHidden('id'); $form->addText('title', 'dictionary.main.Title'); $form->addTextarea('description', 'dictionary.main.Description')->setAttribute("class", "form-control"); $form->addSelect('parent', 'Nadřazená kategorie', $categories)->setPrompt('admin.categories.NothingRelated')->setAttribute("class", "form-control"); $form->addSelect('page', 'admin.categories.SelectPage', $pages->getPageList())->setPrompt('admin.categories.PageSelectedManually')->setAttribute("class", "form-control"); $form->addText('url', 'dictionary.main.URL'); $form->addSubmit('submitm', 'dictionary.main.Save'); $arr = array("id" => $category->id, "title" => $category->title, "description" => $category->description, "page" => $category->pages_id, "parent" => $category->parent_id, "url" => $category->url); $form->setDefaults(array_filter($arr)); $form->onSuccess[] = $this->editFormSucceeded; return $form; }