-
Notifications
You must be signed in to change notification settings - Fork 1
block
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 ?}