Skip to content
Igor edited this page Sep 17, 2016 · 4 revisions

Синтаксис

{* объявление *}
{? block <name>;
	<body>
end ?}
{* использование *}
{{ #<name>[(arg1, [arg2, [argN...]])] }}

Описание

Объявляет новый блок, который потом можно многократно выводить в документ. Может принимать параметры, которые передаются в скобках и разделяются запятой.

Так как блок является частью выражения, его можно обрабатывать через пайп-функции или даже использовать в математических расчетах:

{{ #message("< hello, world! >") | substr(7) | safe }}
{{ #one + #two }}

Пример

{? block screenshot ?}
	<img src="/screenshot/{{this[0]|url}}" alt="{{this[1]|safe}}">
{? end ?}

<div>{{
	#screenshot("scr1.png", "Screen 1")
	#screenshot("scr2.png", "Screen 2")
}}</div>

Переопределение блоков во вложенных шаблонах

Если объявить несколько блоков с одним и тем же именем, то использоваться будет только самый первый. Таким образом, можно переопределять блоки, используемые во включаемых через include шаблонах.

Пример

{* Файл profile_link.html *}
{? block link ?}
	<a href="{{ this[0]|url }}">Профиль</a>
{? end ?}

Пользователь {{user}}, {{ #link(user.url) }}

{* Файл page_home.html *}
{? block link ?}
	<a href="{{ this[0]|url }}">Ссылка на профиль админа</a>
{? end ?}

{* теперь блок link из profile_link переопределен *}
{? include profile_link admin_user ?}

Clone this wiki locally