Dedičnost šablon, bloky a nezobrazení obsahu

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

Zdravím,
mám takový malý problém. Studuju to i na fóru, ale v mé praxi to nefunguje.

Věc se má takhle.

  1. Aplikace je na Moduly Front a Admin.
  2. Mám nejnovější Nette.

Mám **Www **presenter (neřešme název).
V něm v actionDefault() mám:

$this->setView('../triple_column.latte');

Soubor @layout.latte (je ve FrontModule/templates/)

bla bla bla
....
{include #content}
....
bla bla

Soubor triple_column.latte (je ve FrontModule/templates/)

{layout '@layout.latte'}
{block #content}
	{block #contact}{/block}
{/block}

Soubor contact.latte (je ve FrontModule/templates/Panels_triple/)

{layout '../triple_column.latte'}

{block #contact}
Kontaktní informace...
atd.
{/block}

Problém je v tom, že hlavní @layout.latte se v pořádku načte, ale nenčate se nic do toho bloku contact
„Kontaktní informace…“. v tom triple_column.latte

Dědím správně nebo je problém někde jinde?

nanuqcz
Člen | 822
+
0
-

Nejsem si jistý, ale buď bych dal do triple_column.latte

{include #contact}  // {block #contact}{/block} IMHO říkáš, že chceš změnit obsah bloku #contact od rodiče na prázdný řetězec

Anebo v presenteru

$this->setView('../contact.latte');

…contact.latte si pak díky makra {layout} načte i šablonu triple_column.latte a ta zase @layout.latte

jetpack
Člen | 71
+
0
-

No díky za odpověď, ale jedná se o to, že když dám v triple_column.latte:

{include #contact}

tak mi to hodí:
Cannot include undefined block ‚contact‘

A v presenteru se chcu starat jenom o to, zda-li ta stránka bude 2 nebo 3 kolonková jelikož jsou 2 možnosti. Nikoliv jeden vzhled nebo nastavovat:

$this->setView('contact.latte');

Právě proto to mám jako triple_column a double_column.

Chtěl jsem to mít:

  1. Layout.latte má v sobě hlavičku, patičku, menu.
  2. Tělo stránky s dynamickým obsahem je v triple_column.latte
  3. Do triple_column si až teprve dávat potřebné věci.

Editoval jetpack (7. 3. 2012 11:53)

jetpack
Člen | 71
+
0
-

Jo a já mám těch bloků více nejenom contact, ale i formy, novinky a další panely. Takže nemůžu nastavit jenom setView(‚contact‘), ale musel bych to nastavovat na další panely.

nanuqcz
Člen | 822
+
0
-

jetpack napsal(a):

No díky za odpověď, ale jedná se o to, že když dám v triple_column.latte:

{include #contact}

tak mi to hodí:
Cannot include undefined block ‚contact‘

V tom případě:

{includeblock 'contact.latte'}
{include #contact}

Editoval nanuqcz (7. 3. 2012 12:19)