Importovaný block (define) nelze použít jako embed ve snippetu
- medhi
- Generous Backer | 255
Pokud se mi to nepodaří vysvětlit správně, prosím doptejte se.
1. Mám soubor mujEmbed.latte
, který obsahuje
{define mujEmbed}...{/define}
2. V layoutu ho importuji pomocí
{import '../../../embeds/mujEmbed.latte'}
3. Použiju embed někde v šabloně ve snippetu:
{snippet list}
{embed mujEmbed}
...
{/embed}
{/snippet}
4. Po invalidaci tohoto snippetu dostávám chybu Cannot include undefined block ‚mujEmbed‘.
Pokud bych však {define ..}
neimportoval, ale dal ho přímo do
layoutu, funguje to.
- Robin Martinez
- Člen | 89
embed jsem nepouzival, ale tohle ne-e?
{embed '../mujEmbed.latte'}
...
{/embed}
- medhi
- Generous Backer | 255
Robin Martinez napsal(a):
embed jsem nepouzival, ale tohle ne-e?
{embed '../mujEmbed.latte'} ... {/embed}
To není ideální. Ta cesta je totiž pokaždé jiná a při každém vkládání embedu hledat, kde se nachází vkládaná šablona a počítat hloubku adresářů je psycho. Nemluvě o nějakém refaktorování, kdy tyto cesty můžou přestat platit.
- emololftw
- Člen | 82
Presne tomu se venuje tato prednaska:
Volas pak widget (vytvoreny embed) bez cesty, např. {embed ~mujEmbed}
- Pepino
- Člen | 256
medhi napsal(a):
Robin Martinez napsal(a):
embed jsem nepouzival, ale tohle ne-e?
{embed '../mujEmbed.latte'} ... {/embed}
To není ideální. Ta cesta je totiž pokaždé jiná a při každém vkládání embedu hledat, kde se nachází vkládaná šablona a počítat hloubku adresářů je psycho. Nemluvě o nějakém refaktorování, kdy tyto cesty můžou přestat platit.
- David Grudl
- Nette Core | 8218
Asi bych to celé zredukoval na to, že se nevykonává {import} v layoutu při snippetovém požadavku, než na ohýbání {embed}