Přidání stylu při odkazování na akt. stránku

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

Hezkou noc přeji.

Řeším menší problém – jak elegantně přidat odkazu, který odkazuje na aktuální stránku, kaskádovou třídu?

V BasePresenteru si do šablony předávám proměnnou $actPresenter, která mi uchovává URL aktuální stránky. Když ale v šabloně procházím pole a chci pro prvek, jehož zpracování na URL vede na aktuální stránku (čili se shoduje s $actPresenter), nastavit třídu, nedaří se.

Zkouším to pomocí následujícího kódu:

{foreach $roky as $rok}
<a href="{plink this rok => $rok}"{attr class('actual', $actPresenter === {plink this rok => $rok})}>{$rok}</a>
{/foreach}

Laděnka hlásí Parse Error, jelikož Latté Filter nezpracuje {plink ?} v argumentu class(). Mohl bych si napsat vlastní helper, který by mi pro daný rok vracel presenterem vytvořenou URL, ale zdá se mi to moc krkolomné…

Existuje nějaké elegantnější řešení? Předem díky za odpověď.

uestla
Backer | 799
+
0
-

Samozřejmě je zase nette chytřejší než já – zapoměl jsem na značku {ifCurrent ?} Latté filtru. S její pomocí mohu problém snadno vyřešit:

{foreach $roky as $rok}
<a href="{plink this rok => $rok}"{ifCurrent this rok => $rok} class="actual"{/if}>{$rok}</a>
{/foreach}
Filip Procházka
Moderator | 4668
+
0
-

Myslím že by bylo lepší předávat templatě $actYear (čili aktuální rok)

{foreach $roky as $rok}
<a href="{plink this rok => $rok}"{if $actYear==$rok} class="actual"{/if}>{$rok}</a>
{/foreach}

//Edit: Koukám jsi to vyřešil sám :) každopádně si ale pořád myslím že je to zbytečný výkon, když můžeš porovnávat pouze dva integery místo vytvářené objeku requestu a skládání url :)

Editoval HosipLan (20. 12. 2009 11:50)

uestla
Backer | 799
+
0
-

HosipLan napsal(a):

Myslím že by bylo lepší předávat templatě $actYear (čili aktuální rok)

{foreach $roky as $rok}
<a href="{plink this rok => $rok}"{if $actYear==$rok} class="actual"{/if}>{$rok}</a>
{/foreach}

//Edit: Koukám jsi to vyřešil sám :) každopádně si ale pořád myslím že je to zbytečný výkon, když můžeš porovnávat pouze dva integery místo vytvářené objeku requestu a skládání url :)

Pravdu díš, dokonce ještě hezčejší je využít značky {attr ?} ;)

{foreach $roky as $rok}
<a href="{plink this rok => $rok}"{attr class('actual', $actYear === $rok)}>{$rok}</a>
{/foreach}

Editoval uestla (20. 12. 2009 13:42)