Exemple #1
0
 /** 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;
 }