Jak předat render metodě hodnotu parametru – přes router
- n.u.r.v.
- Člen | 485
Ahoj, mám komponentu, která mi vypisuje v záhlaví menu:
šablona:
<nav>
<div class="menu">
<ul>
{foreach $menuList as $item}
<li><a href="{plink :FrontModule:Item:item $item->ID}">{$item->DESCRIPTION}</a></li>
{/foreach}
</ul>
</div>
</nav>
Takže mám např. takovýto odkaz:
<a href="http://muj_web/item/7">Diskuze</a>
Jde nějak udělat (asi v routeru), aby se místo adresy http://muj_web/item/7 zobrazila adresa http://muj_web/diskuze ?
v routeru mám toto:
$router[] = new Route('diskuze[/<answer_id [0-9]+>]', 'FrontModule:Forum:default');//forum
$router[] = new Route('item/7[/<answer_id [0-9]+>]', 'FrontModule:Forum:default', Route::ONE_WAY);//forum
Takže když kliknu na odkaz http://muj_web/item/7 tak se dostanu do diskuze a v adresním řádku je správně napsáno http://muj_web/diskuze. Ale já bych potřeboval, aby to bylo i v menu.Díky
Další věc je, že mám databázi postavenou takto:
…
tabulka item: ID, DESCRIPTION, PARENT,…
tabulka article: ID, ITEM_ID, TITLE,…
…
Takže např. když user klikne v menu na položku „ostatní“ (http://www.muj_web.cz/item/6), tak je směrován do item
presenteru, kde se v renderDefault($item_id) načtou všechny záznamy které
mají item.PARENT = $item_id (6) a ty se mu vypíšou
Pokud se v itemu nenajde položka s daným parentem, tak jde již o konečný článek a tedy se provede redirect na ArticlePresenter (renderDefault($item_id)) a načte se z db článek kde article.ITEM_ID = $item_id;
Vše funguje perfektně, ale já např. vím, že fotogalerie je item.ID = 35 (http://www.muj_web.cz/item/35) a tak bych chtěl, aby se zobrazil odkaz http://www.muj_web.cz/fotogalerie ale přitom se po kliku volal presenter ItemPresenter, metoda renderDefault($item_id) a jejím parametrem by bylo $item_id=35
Lze to nějak udělat?Díky, Snad jsem to napsal dostatečně srozumitelně…
Editoval n.u.r.v. (11. 5. 2014 12:28)
- Tomáš Votruba
- Moderator | 1114
K prvnímu dotazu. Pokud chceš aplikovat router, je potřeba v a použít makro, tedy místo:
<a href="http://muj_web/item/7">Diskuze</a>
použít:
<a href="{plink :FrontModule:Item:item 7}">Diskuze</a>
- n.u.r.v.
- Člen | 485
Tomáš Votruba napsal(a):
K prvnímu dotazu. Pokud chceš aplikovat router, je potřeba v a použít makro, tedy místo:
<a href="http://muj_web/item/7">Diskuze</a>
použít:
<a href="{plink :FrontModule:Item:item 7}">Diskuze</a>
Ahoj, taky že to to tak mám – píšu to úplně nahoře, ale právě že se místo http://muj_web/forum zobrazí http://muj_web/item/7 …jenže já chci aby tam bylo to forum
Editoval n.u.r.v. (11. 5. 2014 23:12)