Šablony – dědění

Dědění šablon je velmi silná stránka Háefka frameworku. Díky dědění šablon můžete přepisovat dříve a jinde definované bloky šablony. Zároveň je můžete doplňovat (na konci i ze předu). V jedné šabloně můžete definovat jakékoliv množství bloků.

Pokud je definována dědící šablona, ale není definován blok, považuje se obsah stávající šablony za blok pojemnovaný #content.

Podívejte se na označení bloků:

{extends 'layout.phtml'}
{block #content}
<p>Zde je zásadní obsah dokumentu.</p>
{/block}

{block append #footer}
Naposledy upraveno 19.11.2022.
{/block}

V layout šabloně, kterou dědíme, pak stačí definovat stejné bloky, které budou přepsány, případně doplněny.

<html>
<body>
<div id="content">
    {block #content}{/block}
</div>
<hr />
<div class="footer">
{block #footer}
Copyright Jan Skrasek
{/block}
</div>

Pokud nechcete obsah bloku nahradit, ale pouze doplnit, napište před název bloku append pro přidání za, respektive prepend pro přidání vpřed.

Nastavení dědícího souboru

Z výše uvedené ukázky je vidět, že dědící šablonu nastavíte pomocí triggeru extends. Dědící šablono můžete samozřejmě nastavit i ve svém php kódu pomocí metody setExtendsFile.

$template = new Template('template.phtml');
$template->setExtendsFile('layout.phtml');
...