Nejlepší způsob na označení aktuálního odkazu v menu

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

Zdravim,
jak lze jednoduše (a nenáročně) udělat menu s výpisem odkazů + označení odkazu jako aktivní (=aktuální adresa)?
zatím to na jiných webech bez Nette řeším tak, že u každého URL kontroluji jestli adresa není stejná
na jiným webu mám zase u <a href napevno napsané $odkazy[‚kontakt‘] a vypisuji obsah, na stránce kontaktu potom nastavím hodnotu na „class=‚oznacit‘“

Jak toto řešíte vy?
Díky za odpovědi

heekon
Člen | 28
+
0
-

Tak proto ze menu ma nekolik urovni a je brane z SQL, tak porovnavam v retezci ID nebo akci, kterou kazda polozka vola a pak tu konkretni „oklasuji“ … v pripade ze je menu udelane ve Flash, tak je to podobne, ale volam konkretni animaci/snimek u odpovidajici polozky.
Samozrejme dalsi alternativa se nabizi jQuery, tzn. vyhledat polozku a pozmenit, coz je dle meho nazoru vhodne, pokud se meni pouze casti stranky a nenacita se cela stranka znovu. Tady je vhodne mit na polozkach ID se stejny nazvem jako je akce, aby skript probehl rychle. Tuhle metodu pouzivam aktualne pod Nette se kterym jsem se zcuchl teprve pred tydnem :).

ricco24
Člen | 141
+
0
-

Osobne používam komponentu Navigation, zatial spĺňa všetky moje požiadavky.
Definícia menu je veľmi jednoduchá len niekedy sa treba trochu viac pohrať s css aby ste dostali požadovaný výsledný efekt.

Označenie aktívnej stránky sa dá spraviť editáciou šablóny tejto komponenty. Aktívnu stránku označuje $item->isCurrent myslím, tomu potom stačí pridať class=„acitve“. Myslím že je to v tejto komponente aj defaultne takto nastavene.

Editoval ricco24 (21. 6. 2011 21:22)

Jan Endel
Člen | 1016
+
0
-

existuje taky late makro {IfCurrent}class='active'{/if}

Aurielle
Člen | 1281
+
0
-

Lépe napsáno

<a n:href="Presenter:action" n:class="$presenter->linkCurrent ? active">Text</a>
CZechBoY
Člen | 3608
+
0
-

gmvasek napsal(a):

Lépe napsáno

<a n:href="Presenter:action" n:class="$presenter->linkCurrent ? active">Text</a>

mno tak takhle mi to nefunguje, místo odkazu mi to napíše # a žádný odkaz

uestla
Backer | 796
+
0
-

mno tak to jsi musel zapomnět nahradit „Presenter:action“ za odkaz, nemýlím-li se?

CZechBoY
Člen | 3608
+
0
-

aha tam asi mělo být {link Presenter:action}, špatně jsme to pochopil, ale přijde mi to stejné jako testovat každý odkaz před výpisem

22
Člen | 1478
+
0
-

btw tohle teda v nové dokumentaci nějak chybí

uestla
Backer | 796
+
0
-

CZechBoY napsal(a):

aha tam asi mělo být {link Presenter:action}, špatně jsme to pochopil, ale přijde mi to stejné jako testovat každý odkaz před výpisem

Právěže nemělo, resp. nemusí, díky spec. atributu n:href, který funguje jako náhrada…

CZechBoY
Člen | 3608
+
0
-

jo, ale mě zajímavá PHP kod ne nějakej latte, já jsme zvyklý na PHP, tkaže mě zajímá co se dostane k serveru, jestli to bude ve všech případech stejný tak je jedno jaký je zápis ne?

Aurielle
Člen | 1281
+
0
-

Zápisy n:href a link jsou ekvivalentní. Pokud ale potřebujete plink tak jedině přes makro.