/** Komponenta pre vykreslenie menu * @return \App\FrontModule\Components\Menu\Menu */ public function createComponentMenu() { $menu = new \App\FrontModule\Components\Menu\Menu(); $menu->setTextTitleImage($this->trLang("base_text_title_image")); $hl_m = $this->hlavne_menu->getMenuFront($this->id_reg, $this->language_id); if ($hl_m !== FALSE) { $servise = $this; $menu->fromTable($hl_m, function ($node, $row) use($servise) { $poll = ["id", "name", "tooltip", "avatar", "anotacia", "novinka", "node_class", "poradie_podclankov"]; foreach ($poll as $v) { $node->{$v} = $row['node']->{$v}; } // Nasledujuca cast priradi do $node->link odkaz podla kriteria: // Ak $rna == NULL - vytvori link ako odkaz do aplikacie // Ak $rna zacina "http" - pouzije sa absolutna adresa // Ak $rna obsahuje text "Clanky:default 2" - vytvorí sa odkaz do aplikácie na clanok s id 2 - moze byt aj bez casti ":2" odkazu ale musí byť aj default $rna = $row['node']->absolutna; if ($rna !== NULL) { $node->link = strpos($rna, 'http') !== FALSE ? $rna : (count($p = explode(" ", $rna)) == 2 ? $servise->link($p[0], ["id" => $p[1]]) : $servise->link($p[0])); } else { $node->link = is_array($row['node']->link) ? $servise->link($row['node']->link[0], ["id" => $row['node']->id]) : $servise->link($row['node']->link); } return $row['nadradena'] ? $row['nadradena'] : null; }); } return $menu; }