Makro ifCurrent – jak správně použít?
- kuxa
- Člen | 5
Zdravím,
jsem nováček ohledně Latte a Nette obecně, a potřeboval bych vysvětlit,
jak přesně funguje makro ifCurrent. Nikde jsem nenašel odpověď, po které
toužím.
Složku presenters mám takovouhle, a odkazy zapisuji následovně
{foreach Array("Úvod"=>"/homepage", "Test API"=>"/apitest", "Přihlášení"=>"/sign") as $name=>$href}
<li>
<a href="{$href}">{$name}</a>
</li>
{/foreach}
A pokud bude uživatel na té stránce, chci li přidat třídu active.
Zkoušel jsem tohle
<li {ifCurrent}class="active"{/ifCurrent}>
Ale to nefungovalo. Mohl by mi někdo pomoct? Omlouvám se za takto triviální dotaz, ale se Latte se teprve seznamuji.
Děkuji předem!
- ViPEr*CZ*
- Člen | 817
Odkazy generujte nejlépe takto: https://doc.nette.org/…n/presenters#…
Třídu pak nějak takto: https://latte.nette.org/cs/tags#…
- kuxa
- Člen | 5
Děkuji za odpověď! Nakonec jsem to tedy vyřešil takto
{foreach Array("Úvod"=>"Homepage", "Známky"=>"Homepage", "Rozvrh"=>"Homepage", "Předmětové stránky"=>"Homepage", "Jídelníček"=>"Apitest") as $name=>$href}
<li n:class="$presenter->isLinkCurrent($href.':*') ? active">
<a n:href="{$href}:">{$name}</a>
</li>
{/foreach}
Editoval kuxa (12. 4. 2016 18:19)
- Aurielle
- Člen | 1281
Lépe a správněji takto:
<li n:class="$presenter->linkCurrent ? active" n:href="Foo:foo">Foo</li>
<li n:class="$presenter->isLinkCurrent('Bar:*') ? active" n:href="Bar:">Bar</li>
(první varianta je použitelná jen na konkrétní destinaci, samozřejmě)
Editoval Aurielle (13. 4. 2016 2:10)
- Felix
- Nette Core | 1196
Mysteria napsal(a):
@Felix: Já ho používám prakticky jenom u menu na přidání třídy k aktivní položce. Nebo se už tohle dělá nějak lépe?
Presne jak pise @Aurielle.
Pouzivam vsude zapis:
<li n:class="$presenter->isLinkCurrent('Foo:*') ? active"></li>
<li n:class="$presenter->isLinkCurrent('Foo:Bar') ? active"></li>