undefined block content pokud neni primo v @layout.latte

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

Zdravim, resim asi zakladni vec, ale chtel jsem k vuli vlastni prehlednosti si rozlozit hlavni @layout.latte na vice souboru, ve kterych pak budu vkladat obsah jednotlivych bloku v zavislosti na presenteru.
Situace: v souboru: @layout.latte obsahuje {include ‚@wrap.latte'},
ve @wrap.latte je definovano: {include #content}
a v presenter/default.latte je definovano {block #content} obsah {/block}. Vystup hlasi: Cannot include undefined block 'content‘.
Pritom kdyz vlozim {include #content} primo do @layotu.latte tak to funguje. Co jsem nepochopil? Diky za nakopnuti.

ondra310
Člen | 25
+
0
-

Co je blbě na tomto dotazu? Mám špatný styl uvažování? To musí být celý layout v jednom souboru a pouze si tam definuji bloky? To mi přijde hodně nepřehledné. Budu rád, když mi někdo napíše, že to takhle teda nejde ať nám tím už nebádám. Díky :-)

nanuqcz
Člen | 822
+
0
-

Ahoj, hádám, že takhle šablonu rozkouskovávat tady nikdo nezkoušel. Zkus ve @wrap.latte místo {include #content} použít {block #content}{/block}, ale jen hádám. Třeba to bude dělat stejný problém.

Ascaria
Člen | 187
+
0
-

Nebylo by lepší ty jednotlivé bloky nedělat jako bloky a šablonu nesekat, ale udělat si to jako komponenty? Ty pak můžeš mít definované v base presenteru a vytvářet se budou jen ty, které budou potřeba.

nanuqcz
Člen | 822
+
0
-

Mirek_R: Vždyť tak to teď má, ne?

Ascaria
Člen | 187
+
0
-

Includy jsou fuj, nejde v nich ajax.

Mirek_R
Člen | 22
+
0
-

nanuqcz: Jo jo ErroR mesage :D .

ondra310
Člen | 25
+
0
-

Diky za info, byt jste me moc nepotesili, ale aspon vim ze tudy cesta nevede. Takze vsichni mamte jeden velky @layout.latte, kde je vicemene vsechno nacpane?

nanuqcz
Člen | 822
+
0
-

Když potřebuju něco více strukturovat, řeším to nějak takhle:

templates/
  Articles/
    default.latte
    detail.latte
    @articles.latte
  Home/
  @layout.latte

default.latte

{extends '@articles.latte'}

{block articlesContent}
...
{/block}

@articles.latte

{extends '@layout.latte'}

{block content}
  <h1>Články</h1>
  {block articlesContent}{/block}
{/block}

@layout.latte

klasický, s bloky "head", "content" atd.
OscarHanzely
Člen | 7
+
0
-

nanuqcz napsal(a):

Když potřebuju něco více strukturovat, řeším to nějak takhle:
@articles.latte

{extends '@layout.latte'}

{block content}
  <h1>Články</h1>
  {block articlesContent}{/block}
{/block}

resim to ted uplne stejne.
jen podotykam, ze odkaz na @layout.latte v tvem prikladu musi byt o uroven adresare vys:

{extends '../@layout.latte'}

Kazdopadne dekuji, tohle nikde v tutorialu nebylo a ja se to snazil resit pres include. Ten extends je primocarejsi. ;-)

Editoval OscarHanzely (23. 12. 2012 12:10)