předávání parametru odkazu v menu s rekurzí

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Petr Parolek
Člen | 455
+
0
-

Ahoj, nemůžui přijít na to, jak mám předat do url v menu cestu do kategorie článků, např. /abc/xxx/zz/

template:

{block #menu}
                                <ul class="nav menu">
                                    {foreach $menu as $item}
                                        {dump $item}
                                    <li class="item-{$item->id}">
                                        <a href="{link :Front:Category:show $item->id,$item->alias}">{$item->title}</a>
                                        {? $selection = $item->related('web_menu_items','parent_id')}
                                        {if $selection->count()>0}
                                            {include #menu, menu => $selection}
                                        {/if}
                                    </li>
                                    {/foreach}
                                </ul>
                                {/block}

presenter:

$this->template->menu = $this->database->fetchMenuItems();

model:

public function fetchMenuItems() {
        return $this->database->table('web_menu_items')->where('parent_id',1);
    }

Díky moc za rady

amik
Člen | 118
+
0
-

Ahoj,
a proč toto nefunguje?
Stačí mít v URL id článku, např. /front/category/show/123-nejaky-slug-clanku , což by ve tvém příkladě mělo fungovat, článek se otevře, v URL adrese nemusí být celá cesta.
Pokud nemáš vyslovený důvod v URL uvádět celou cestu, nedělal bych to. Pokud máš, můžeš si třeba v rekurzi předávat {include #menu, menu => $selection, parents => array_merge($parents, [$item->alias])}.

Petr Parolek
Člen | 455
+
0
-

díky moc, ale kde mám sebrat pole s rodiči?

Editoval ppar (16. 9. 2015 12:14)

Petr Parolek
Člen | 455
+
0
-

Url pouze s id a aliasem článku jsem měl udělaný, jak jsi psal. Více se mi líbí celá cesta v url, jak má třeba CMS Joomla