Automatický {extend} v nových šablonách a setLayout()
- Patrik Votoček
- Člen | 2221
Nové šablony jsou super nenutnost psát
{extends}
je super až do chvíle kdy chcete ve všech souborech
používat místo {extends '@layout.phtml'}
{extends '@layout.frontend.phtml'}
jelikož všechny presentery
frontendu dědí od BasePresenter
u a backendu od
BackendBasePresenter
. Tak by se to dalo řešit že prostě nekde
nastavím $layout
. Třeba:
Ale to bohužel nejde… :-( Musím to tedy řešit takto:
a v šabloně uvádět {exteds $Xlayout}
. Což není tak
pohodlné. A tak se ptám dá se to řešit elegantněji bez toho abych musel
v každé šabloně mít {extends ...}
? Nebo nešlo by to něják
dodělat? Případně jakou třídu podědit a jakou metodu upravit abych
docílil tohoto chování? Aneb místo automatického vkládání
{extends '@layout.phtml'}
(tím pádem nenutnosti psát to do
šablony) mít {extends $layout}
a proměnou $layout
defaultně nastavenou na '@layout.phtml'.???
- Patrik Votoček
- Člen | 2221
vlki napsal(a):
Hm, přijde mi, že na to jdeš strašně složitě. Nestačí pouze těm Presenterům nastavit správně ten layout? Nějak takto?
Asi jo… Teď jsem to zkoušel a funguje to… Problém byl v tom že já mám ty @layout.....phtml v úplně jiné složce.
Poznámka: Layout se nenastavuje jako jméno souboru, ale jen jakýsi kořen jména, který je prefixován zavináčem a postfixován příponou .phtml.
Na tohle sem zapoměl to byl taky ten problém proč mě to nešlo…
THX!
- vlki
- Člen | 218
Jsem rád, že to tak rychle nakoplo:)
Problém byl v tom že já mám ty @layout.....phtml v úplně jiné složce.
Tak to by ti zas mělo posloužit překrytí metody
formatLayoutTemplateFiles
. Pokud máš jedno jediné úložiště
layoutů, mohlo by to být dokonce i rychlejší než řešení, které teď
formatLayoutTemplateFiles
poskytuje ;)
- Patrik Votoček
- Člen | 2221
formatLayoutTemplateFiles
mám předělané už nějáký čas
takže to pro mě byla otázka dopsání jednoho teda vlastně dvou řádku.
A už to funguje. Moje řešení template-u je trochu složitější (třeba
jednou pochopíš..... – prosím zatím neřeš jak a kdy)