Makro {layout} a hledání v jiném adresáři

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

Chtěl bych nějak docílit toho, aby mi makro {layout} nehledalo relativně k šabloně (případně absolutně), ale abych zadal například {layout ‚name.latte‘} a hledalo to podle formatLayoutTemplateFiles, případně na podobném principu.

Jde mi o to, že chci mít u šablon možnost nastavit dědění layoutu, ale nechci řešit přesnou adresu, chci jen nastavit jednou, v kterém adresáři hledá a je to.

Felix
Nette Core | 1270
+
0
-
  1. Bud si muzes prepsat defaultni chovani.
  2. Udelat si vlastni makro ktere bude vyuzivat {layout} makro
  3. Udelat si vlastni metodu {layout $presenter->findLayoutTemplateFiles(‚name.latte‘)}

Aktualne me nic jineho nenapada :-)

Jiří Nápravník
Člen | 710
+
0
-

Tak jsem to vyřešil ne zrovna šťastně, ale mám to tak, že v latte dávám:

{layout $presenter->findLayout(‚nazev-layoutu‘)}

a findLayout mám v BasePresenteru

byl bych rád, pokud by to šlo nějak lépe, či pokud by někdo poradil jak napsat makro, které by to zvládalo

Jiří Nápravník
Člen | 710
+
0
-

Felix napsal(a):

  1. Bud si muzes prepsat defaultni chovani.
  2. Udelat si vlastni makro ktere bude vyuzivat {layout} makro
  3. Udelat si vlastni metodu {layout $presenter->findLayoutTemplateFiles(‚name.latte‘)}

Aktualne me nic jineho nenapada :-)

Díky za reakci, napsal jsi ji během mého spisování odpovědi, tak to vypadá trochu divně:-) Jak jsem psal, zatím jsem skončil c možností c)

Možností a) myslíš, přepsat samotnou část v nette? to ne, to je fuj fuj:)

  1. no o to jsem se pokoušel celou dobu, ale nějak jsem nebyl schopný zavolat to makro {layout} z vlastního makra…
HappyFace
Člen | 162
+
0
-

toto som ja tiez riesil relativne nedavno:
https://forum.nette.org/…nette-2-0-12
https://forum.nette.org/…ka-file-path

nakoniec z toho vysla tiez metoda, ktora automaticky trace-uje cestu k volanej template..

{layout $_presenter->traceTemplateFile("menu",, $template->getFile())}
  • hlada to nezavysle na typu templaty v poradi *.latte → *.phtml, atd. ale tiez mozes zadat hned „menu.latte“
  • musel som tam pridat este jeden parameter a to „$template->getFile()“ koli zacykleniu, odporucam doplnit ak to nemas.

Problem je ze sa mi to nepodarilo prepisat ako macro kde potrebujem zavolat povodne macro a don doplnit vlastny kod.

Editoval HappyFace (26. 11. 2013 8:32)

Jiří Nápravník
Člen | 710
+
0
-

Na ten první link jsem narazil a inspiroval se tam:)

Já si nakonec vystacil s jednodušší metodou, kde mám v podstatě jen cestu a najdu si ten layout v ní, či-li cyklení apod by tam hrozit nemělo.

HappyFace
Člen | 162
+
0
-

Jiří Nápravník napsal(a):

Na ten první link jsem narazil a inspiroval se tam:)

Já si nakonec vystacil s jednodušší metodou, kde mám v podstatě jen cestu a najdu si ten layout v ní, či-li cyklení apod by tam hrozit nemělo.

a tam prave ze dost realne moze dojst k zacykleniu :) lebo vzdy prechadzas rovnake cesty od zaciatku cize je velmi jednoduche sa zamotat alebo narazit na tu istu cestu, ktoru aktualne uz pouzivas

Jiří Nápravník
Člen | 710
+
0
-

No já tam momentálně mám jen jednu cestu na kontrolu a v neprojíždím to od začátku, prostě v na konci té cesty je šablona nebo není. Nepotřeboval jsem tam nějak více cest zatím + zatím mi stačí mít jen vždy v jednom layoutu ne nějak zanořenými apod. takže zatím to u mě nehrozí:)

Felix
Nette Core | 1270
+
0
-

Možností a) myslíš, přepsat samotnou část v nette? to ne, to je fuj fuj:)

Muzes si podedit UIMacros a pak pretizit metodu macroExtends

https://api.nette.org/…ros.php.html#…