Latte – zanořování layoutů

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

Zdravim.
Pokouším se o zanořování layoutu – jakousi Matrosku.

Mám základní layout s obsahem default.latte který chy aby byl zanořen v grid.latte:

{layout '../grid.latte'}

{block content}
    <h1>Congratulations!</h1>
{/block}

dále mám grid.latte který bude obalovat můj obsah:

{layout '@layout.latte'}

{block content}
    muj grid
    {include content}
{/block}

A nakonec mám @layout.latte který to celé zobrazí:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>{block title|striptags|upper}Nette Application Skeleton{/block}</title>
    </head>

    <body>
        {include content}
    </body>
</html>

Problém je v tom, že se mi nezobrazuje obsah šablony grid.latte. Je zobrazen pouze <h1>Congratulations!</h1> v @layout.latte Nic ze šablony grid.latte není zobrazeno.

Nevěděl by někdo proč? Diky za rady

Šaman
Člen | 2666
+
0
-

Protože blok ‚content‘ ve vnořené šabloně nahradí/přepíše stejně pojmenovaný blok ve vnějši šabloně. Zkus jeden přejmenovat.

Kcko
Člen | 468
+
0
-

Šaman napsal(a):

Protože blok ‚content‘ ve vnořené šabloně nahradí/přepíše stejně pojmenovaný blok ve vnějši šabloně. Zkus jeden přejmenovat.

A to je žádoucí? S Nette začínám, ale uvítal bych jiné chování.

Resp. pokud mám šablonu (default.latte) ve které si nadefinuji nějaký blok a jiný layout (nějaký přestupní) ve kterém bude blok se stejným jménem tak bych byl rád aby se mi rozšířil nikoliv přepsal.

Nechci mít X bloků s ruzným jménem ale jeden blok, který se bude rozšiřovat tak jak se layout postupně dostane až k poslednímu.

V našem případě tedy takto. default.latte (block) → prestupni-layout.latte (block + převezme blok z default.latte) → @layout.latte (prevezme a rozsiri nikoliv přepíše z prestupni-layout.latte)… tj. takova stromečková struktura s doplněním a převzetím bloků…

Lze to v nette nebo se ptám na úplnou blbost (Možná nějak v latte, zatím znam základní příkazy..)

Semik
Backer | 135
+
0
-

Jestli dobře chápu situaci, tak by mělo stačit vložit rodičovský blok pomocí {include #parent}.

Kcko
Člen | 468
+
0
-

Můj fail, měl jsem to špatně. Už to frčí.


Semik: díky

Editoval Kcko (7. 4. 2014 15:38)