Dědičnost šablon napříč více moduly
- pidiclovek
- Člen | 91
Ahoj,
trochu bojuji s dedičností šablon napříč více moduly, prosím o pomoc. Mám více modulů aplikace a chtěl bych, aby jakákoliv šablona z jakéhokoliv modulu mohla includovat z jedné šablony. Nyní to dělám tak, že tuto vkládanou šablonu mám ve složce templates v každém modulu, což mi nepřijde moc praktické, načíst šablonu mimo aktuální modul se mi nepodařilo. Jak na to prosím? :)
Díky!
- voda
- Člen | 561
Jestli máš strukturu podle presenters, tak by mělo stačit
umístit @layout.latte
do app/templates
.
- pidiclovek
- Člen | 91
Strukturu používám defaultní, tedy ze sandboxu aktuálního Nette, zatím nemám důvod jí měnit. Takže jestli ti dobře rozumím, měly by layouty ze všech modulů dědit už od toho základního, tedy v app/templates?
To už jsem zkoušel a nefunguje, konkrétně mám v app/templates $layout.latte:
{block #foo}
Vkládáno všude
{/block}
při použití makra include např v app/FrontModule/templates/Bar.@layout.latte tento block ale nenajde
- voda
- Člen | 561
Šablona dědí vždy jen od jednoho layoutu, takže pokud máš nějaký
konkrétnější než app/templates/@layout.latte
, tak se použije
ten. Pokud chceš aby app/FrontModule/templates/Bar.@layout.latte
dědil ještě od toho základního, tak do něj na začátek dopiš
{extends ../../templates/@layout.latte}
.
- pidiclovek
- Člen | 91
Tak jsem si to přesně představoval na začátku, ale takto mi to
nefunguje, při dodržení výše psaného a s vložením
{extends '../../templates/@layout.latte'}
do layoutu, který bude
dědit, mi stejně laděnka napíše: Cannot include undefined block
‚footer‘
abych předešel nejasnostem, oholený kód:
app/templates/@layout.latte
{block #foo}
Vkládáno všude
{/block}
app/FrontModule/templates/Bar.@layout.latte
<html>
...
...
{include #content}
...
{include #foo}
...
Bude to nějaká blbost pravděpodobně :) díky za pomoc!
- pidiclovek
- Člen | 91
To je ono!! Super, díky za pomoc. Jen ještě dodám že v
app/templates/@layout.latte
jsem ještě použil místo
block define, které obsah uchovává pro
pozdějsí použití a hned nevykresluje.
Ještě jednou díky, už v tom mám hned pořádek.