################## Syntax ################## Šablony používají syntax Twig (http://twig.sensiolabs.org/), kterou dále rozšiřují o specifické funkce. Tato dokumentace obsahuje pouze tyto nadstavbové funkce a doporučujeme nejprve se seznámit se základní syntaxí Twig: http://twig.sensiolabs.org/doc/templates.html ============================ Validita šablon ============================ Všechny šablony prochází zpracováním DOM parseru, takže musí být validní. Není možné křížit tagy a všechny tagy otevřené v jednom souboru by měly být ve stejném souboru i uzavřeny. Zpracování šablon respektuje HTML5 specifikaci, takže není potřeba uzavírat tagy IMG, INPUT, BR, HR a podobně. Důsledkem parsování šablon může být neočekávané chování - například v případě použití DIV uvnitř P .. code-block:: html+twig {# zápis v šabloně #}

Hello!

Hi!

Skutečný výstup: .. code-block:: xml

Hello!

Hi!
Podle HTML5 specifikace DIV nemůže být uvnitř odstavce, takže je odstavec ukončen, jakmile narazí na DIV. Následující zápisy nelze v šablonách použít .. code-block:: html+twig {# nevalidní tag #} {# chybné uvozovky - ve twigu stačí použít apostrof #} ==================== Struktura šablony ==================== Některé zápisy sice projdou validací, ale není doporučené je používat. Například tento zápis je sice validní, ale jeho použití může způsobit problémy. .. code-block:: html+twig {# chybný zápis #} {%if user %}
{%endif%} {%include this.template %} {%if user %}
{%endif%} Doporučený způsob zápisu: .. code-block:: html+twig {# správný zápis #} {%if user %}
{%include this.template %}
{%else%} {%include this.template %} {%endif%} Pokud je potřeba mít různou strukturu dle podmínek, je nejpraktičtější mít definici celé struktury na jednom místě. Například v jednom souboru mít pouze podmínky a kód šablony rozdělit na makra/soubory. Výsledný kód je výrazně přehlednější a zároveň nejsou problémy při zpracování šablony. ===================== Podmíněné atributy ===================== Použitím prefixu *if:* lze podmínit vypsání atributu. Hodnotou atributu je twig kód (bez {{}}), který může obsahovat buď jenom podmínku (pro použití u checked, selected, ...) nebo podmínku a hodnotu. .. code-block:: html+twig {# výstup: #} {# výstup: #}
{# výstup:
#}
{# výstup:
#}