Zvláštní chování $presenter->isLinkCurrent()

Ages
Člen | 128
+
0
-

Zdravím, zkouším první testy v Nette 3 a zatím vše bez problému.
Dnes jsem ale narazil na zváštnost:
V komponentě vypisuji menu:

//menu.latte
{foreach $menu as $key => $item}
	<li n:class="$presenter->isLinkCurrent() ? uk-active"><a href="{plink articles, $key}">{$item}</a></li>
{/foreach}
<!-- articles.latte -->
<li class="uk-active"><a href="/shop/www/kategorie/fiskars">Fiskars</a></li>
<li class="uk-active"><a href="/shop/www/kategorie/oregon">Oregon</a></li>
<li><a href="/shop/www/kategorie/bahco">Bahco</a></li>
<li><a href="/shop/www/kategorie/gerber">Gerber</a></li>
<li><a href="/shop/www/kategorie/ke-stazeni">Ke stažení</a></li>

Netuším proč mi makro označilo 2 adresy jako aktivní, dělám neco špatně?

Gappa
Nette Blogger | 199
+
+2
-

Divně se to zdá se chová, ale na druhou stranu – neměla by metoda isLinkCurrent dostat také nějaké parametry? :)

Tj.:

Editoval Gappa (20. 8. 2019 6:45)

Ages
Člen | 128
+
0
-

@Gappa pokud do metody doplním parametry, tak to funguje správně. Nicméně v Nette 2.4 to funguje i bez doplnění parametrů.
Každopádně děkuji.

David Matějka
Moderator | 6445
+
+4
-

pokud neuvedes parametry, tak to bere, jestli posledni vytvoreny request je current. predpokladam tedy, ze pred vypisem menu se nekde generoval link {plink articles fiskars} (pripadne treba this)

v nette 2.4 to imho fungovalo stejne, ale tipoval bych, ze tvuj kod vypadal nejak takto:

{foreach $menu as $key => $item}
   <a href="{plink articles, $key}" n:class="$presenter->isLinkCurrent() ? uk-active">{$item}</a>
{/foreach}

tedy ze si nejdriv vygeneroval link a az potom kontroloval, zda je aktualni

Gappa
Nette Blogger | 199
+
+1
-

Ages napsal(a):

Nicméně v Nette 2.4 to funguje i bez doplnění parametrů.

Prošel jsem zdroják – jestli to dobře chápu, tak pokud se nic nezadá, bere se poslední vytvořený link – možná se komponenty na stránce vykreslují v jiném pořadí a chová se to jinak? Ale určitě bych se na to nespoléhal :)

Editoval Gappa (20. 8. 2019 9:25)

Ages
Člen | 128
+
+1
-

@DavidMatějka, @Gappa – to mě vůbec nenapadlo, ale je to přesně tak.
Díky za vysvětlení!