Layout: Něco jako if #block != ''

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

Zdravím, současný stav

@layout.phtml

{block #heading} {/block}

Default.default.phtml

{block #heading}<h2>Název stránky</h2>{/block}

Default.action.phtml

{block #heading}<h2>Název stránky 2</h2>{/block}

V případě, že chci změnit H2 třeba za H3, musím to udělat ve všech šablonách.

Hodilo by se mi v @laoyut.phtml něco jako

{if #block = ''}<h2>{/if}{block #heading}{/block}{if #block = ''}</h2>{/if}

Default.default.phtml

{block #heading}Název stránky{/block}

Jenže to samozřejmě nefunguje, protože to není proměnná. Nastavování pomocí {assign $variable 'hodnota'}jsem zkoušel, ale zpětně se mi to ze šablony do layoutu nepromítne. Zkoušel jsem to dohledat v tématu ohledně šablon, ale moc jsem nenašel. Dá se to vyřešit? Používám „nový“ šablonovací systém. Díky.

Editoval Michalek (4. 1. 2010 23:51)

norbe
Backer | 405
+
0
-

Co takhle použít v layoutu <h2>{block #heading} {/block}</h2>?

Michalek
Člen | 211
+
0
-

Ha, to jsem zapomněl, omlouvám se. To právě potřebuji ošetřit, na některých stránkách <h2> vůbec nebude a hyzdil by mi to tam zbytyčně prázdný <h2></h2> (který zůstane nastylovaný a třeba border se tam zobrazuje zbytečně).

Editoval Michalek (4. 1. 2010 23:57)

stpnkcrk
Generous Backer | 190
+
0
-

Lze to udělat i „ve smyslu“

{block #heading-out}<h2>{block #heading} {/block}</h2>{/block}

V souborech, jež obsahují stránky, kde <h2> vůbec nebudeš chtět mít, uděláš jen {block #heading-out}{/block} (nastavíš obsah bloku na „nulovou“ hodnotu) a máš vystaráno. :)

Michalek
Člen | 211
+
0
-

To je ten nápad, který mi scházel. Děkuji pěkně.

Jen Block name must be alphanumeric string – takže headingOut :)

Editoval Michalek (5. 1. 2010 1:22)

Ondřej Mirtes
Člen | 1536
+
0
-

Můžeš použít helper strip, který ti z bloku odstraní tagy, a obalit jeho obsah čím chceš.

Je to takhle snad i v příkladech v distribuci.

Editoval Ondřej Mirtes (5. 1. 2010 7:59)