Layout problem
- yogiman321
- Člen | 11
Zdravim, zacinam sa pohravat s Nette, a neviem si poradit s layoutom.
Pouzivam BasePresenter s @layout.phtml,
v ktorom includujem DefaultPresenter s layoutom
Default.@layout.phtml
.
problem je v tom ze pri defaultnom zobrazeni sa zobrazí iba
Default.@layout.phtml
šablona.
obsah @layout.phtml
sa vobec nezobrazi.
v obidvoch layoutoch includujem obsah takto:
{include $content}
- Patrik Votoček
- Člen | 2221
To bude asi tím že pokud používáš Default.@layout.phtml
tak se načte ten jako layout a ne @layout.phtml
. Funguje to totiž
tak že když máš layout pro presenter tak má přednost předobecným
layoutem místo toho aby se navzájem „proincludovavaly“. Asi budeš muset
použít v BasePresenteru Presenter->setLayout(…)
a nastavit si nějákou template proměnou s cestou na aktuální „presenter
layout“.
- yogiman321
- Člen | 11
Neexistuje nieco ako dedicnost layout-ov? Lebo som sa tu docital, ze kazdy
presenter moze mat vlastny layout a ked mam v podstate
BasePresenter
ako nadradeny DefaultPresenteru
tak by
mala
existovat nejaka jednoducha moznost ako zdedit layout, ci nie?
- yogiman321
- Člen | 11
Ano, tento Thread som uz pozeral a aj skusal doplnit
{extends '@layout.phtml'}
do Default.@layout.phtml
, a
v tomto pripade
uz zakladny layout includlo ale Default.@layout.phtml
sa nepouzil.
Tym padom mi vo vyslednej stranke chybaju prvky definovane v
Default.@layout.phtml
.
- Patrik Votoček
- Člen | 2221
jde o to že musíš v tomhle případě používat bloky. Příklad bude jednodušší na pochopení než kdybych to měl popisovat.
@layout.phtml
<html>
<head>...</head>
<body>
<div id="logo"><h1>Můj web</h1></div>
<div id="page">
{block #page}
<div id="content">
{block #content}
<h2>404</h2>
<p>stránka nenalezena</p>
{/block}
</div>
{/block}
</body>
</html>
{extends '@layout.phtml'}
{block #page}
<div id="menu">...</div>
<div id="content">
{block #content}
<h2>404</h2>
<p>stránka nenalezena</p>
{/block}
</div>
{/block}
Default.default.phtml
{extends 'Default.@layout.phtml'}
{block #content}
<h2>Default</h2>
<p>Tohle je zobrazení akce default v presenteru Default</p>
{/block}
Chápeš? Nebo potřebuješ něco dovysvětlit?
Editoval vrtak-cz (4. 6. 2009 13:14)
- yogiman321
- Člen | 11
Už v tom mám zdá sa áplne jasno, už mi to funguje ako má, Ďakujem za trpezlivosť.