Podivné chování $presenter->linkCurrent

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

Ahoj,

nějak divně se mi chová linkCurrent, zdá se, že reaguje správně pouze na defaultní akci. Při ostatních akcích mi to nehodí active. Nette 2.1.4

V komponentě

<a href="{plink $value['bPresenter']}" n:class="list-group-item, $presenter->linkCurrent ? active">{$value['title']}</a>

Díky za rady

Editoval Maekoboss (17. 8. 2014 10:27)

Hafran
Člen | 121
+
+1
-

No myslím, že by to linkCurrent mělo přebírat argument co chceš zjistit že je current. Takže třeba $presenter->linkCurrent(„Homepage:default“).

edited: jasný, s argumentem nemůžeš použít linkCurrent(), ale isLinkCurrent();

Editoval Hafran (17. 8. 2014 11:28)

David Kudera
Člen | 455
+
+1
-

Dokonce je na to i makro {ifCurrent Presenter:action}

Edit: omlouvám se, nevšiml jsem si, že to máš v makru class, takže moje řešení nebude fungovat…

Editoval David Kudera (17. 8. 2014 11:04)

Maekoboss
Člen | 36
+
0
-

ifCurrent je dle specifikace deprecated a má být nahrazeno právě n:class ekvivalentem.

Maekoboss
Člen | 36
+
0
-

linkCurrent není metodou dle všeho Call to undefined method AdminModule\StructureModule\DemandPresenter::linkCurrent()

jiri.pudil
Nette Blogger | 1028
+
0
-

$presenter->isLinkCurrent(‚Homepage:default‘)

Hafran
Člen | 121
+
0
-

jasný, s argumentem nemůžeš použít linkCurrent(), ale isLinkCurrent();

Hafran
Člen | 121
+
0
-

Máš na to odkaz? Já to používám pořád i ve 2.2.2 a nic mi to nehlásí.

David Kudera
Člen | 455
+
0
-

Taky to nikde nevidím a přitom je to vždy (co jsem viděl) napsáno i jako @deprecated anotace. V definici makra přitom ale nic není.

I to ale nemění nic na tom, že stejně nejde použít makro v makru..

David Matějka
Moderator | 6445
+
0
-

je to uvedeno (asi) pouze tady

Maekoboss
Člen | 36
+
0
-

Oukej tohle jede a mam teda ještě jeden dotaz. Jak řešíte, když chce vědět, jestli je aktivní cělý modul. Řekněme, že mám modul Forum: na nějž mám odkaz v horním hlavním menu. V modulu forum mám více různých presenterů, ale chci, aby tlačítko v hlavním menu vždy svítilo. Ještě tedy předpokládám, že Forum: je skutenčně jenom modul, neexistuje tedy žádný ForumPresenter.

Takže nyní to při isLinkCurrent(‚Forum:*‘) háže, že neexistuje presenter Forum, což je správně, protože jde o modul ne o presenter.

Díky

Hafran
Člen | 121
+
0
-

No modul se zapisuje s dvojtečkou před takže by mělo fungovat :Forum:*

Editoval Hafran (17. 8. 2014 12:05)

Maekoboss
Člen | 36
+
0
-

Tak jinak ještě. Mám modul Admin v něm mám modul Structure pro úpravu obsahu stránek v modulu Structure mám pár presenterů třeba Base, Homepage, News. Pokud tvořím jink takhle, tak mi to dává error, že neexistuje Structure presenter

<a n:class="$presenter->isLinkCurrent(':Admin:Structure:*') ? active" href="{plink :Admin:Structure:Homepage:}">Struktura webu</a><

Editoval Maekoboss (17. 8. 2014 12:47)

Mysteria
Člen | 797
+
0
-

Myslím že * místo presenteru použít nejde, jenom místo action.