Budoucnost makra ifCurrent

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

Hola,

tak jsem si říkal, že bych rozšířil makro ifCurrent o chování s více možnými argumenty, něco na způsob:
{ifCurrent Foo: || Bar:}...{/ifCurrent}. Sem tam to potřebuju a psát to několikrát neni uplně ono. Ve vývojový větvi na githubu jsem ale našel poznámku:

$me->addMacro('ifCurrent', array($me, 'macroIfCurrent'), 'endif'); // deprecated; use n:class="$presenter->linkCurrent ? ..."

Dobře, deprecated. Pokud bych ale uvážil tuhle možnost, musela by se takováhle funkcionalita přetěžovat na úrovni presenteru a tam si myslim že tohle nepatří (use case s více presentery v makru).

Řešení typu

{var pname = $presenter->name}
{if $pname == 'Foo'|| $pname == 'Bar'}

taky jde, ale už je to víc psaní a je tu rozdíl v dvojtečce, která tu chybí za názvem presenteru. Co si o tom myslíte? Chápu, že je vývojový preferovaný způsob je kratší, ale znemožňuje udělat výše nastíněné pouze v šabloně. Díky za názory

Ascaria
Člen | 187
+
0
-

Hoj,

menu by podle mě mělo být v první řadě komponenta, tím se presenter zbaví zátěže a komponenta půjde používat opakovaně a snadno i v jiných projektech.

Já třeba řeším, které položky menu jsou označené u komponenty Navigation, rovnou při přidávání položek menu v createComponentX metodě v presenteru. Šablona by podle mě neměla nic zjišťovat, ale měla by v ideálním případě jen vyrenderovat to, co se jí předalo.

Editoval Ascaria (14. 9. 2012 11:05)

doublemcz
Člen | 15
+
0
-

Tohle

{ifCurrent Foo: || Bar:}...{/ifCurrent}

už jsem potřeboval několikrát. Například při include souboru <script> nebo <link> pouze na dvě stránky. Nevíte jestli se to plánuje dodělat? Byla by to fakt zajímavá feature.