Makro ifCurrent – jak správně použít?

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

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 | 811
+
0
-

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
+
0
-

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)

cendak
Člen | 21
+
0
-

Makro ifCurrent se používá takto:

<nav id="menu">
  <ul>
    <li{ifCurrent Homepage:} class="active"{/ifCurrent}><a n:href="Homepage:">úvod</a></li>
    <li{ifCurrent Contact:specificAction} class="active"{/ifCurrent}><a n:href="Contact:">kontakt</a>
  </ul>
</nav>
Felix
Nette Core | 1186
+
0
-

@cendak Macro ifCurrent se uz skoro nepouziva :)

Mysteria
Člen | 797
+
+2
-

@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?

Aurielle
Člen | 1281
+
+2
-

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 | 1186
+
0
-

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>