2.1 KiB
Тег {macro}
Макросы - фрагмент шаблона который можно повторить сколь угодно раз и в каком угодно месте. Макросы не имеют общего пространства имен с шаблоном и могут оперировать только переданными переменными.
{macro}
Обявление макроса происходит при помощи блочного тега {macro}
{macro plus($x, $y, $z=0)}
x + y + z = {$x + $y + $z}
{/macro}
Вызов макроса происходит при помощи строкового тега {macro}
. Аргументы передаются стандартно, как атрибуты в HTML тегах
{macro.plus x=$num y=100}
Во время рекурсивного вызова используйте суффикс macro что бы обратиться к текущему макросу:
{macro plus($x, $y, $z=0)}
...
{macro.plus x=2 y=$y}
...
{/macro}
{import}
Для использования маросов в другом шаблоне необходимо их импортировать при помощи тега {import}
{import 'math.tpl'}
При импорте можно указать дргое пространство имен что бы можно было использовать одноименные макросы из разных шаблонов
{import 'math.tpl' as math}
...
{math.plus x=5 y=100}
Пространство имен макросов может совпадать с названием какого-либо тега, в данном случае ничего плохого не произойдет: будет вызван макрос, а тег не исчезнит
При необходимости можно импортировать только необходимые макросы, явно указав в теге {import}
{import [plus, minus, exp] from 'math.tpl' as math}