Latte – zanořování layoutů
- motorcb
- Člen | 552
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
- Kcko
- Člen | 468
Š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..)