fenom/docs/tags/macro.md
Ivan Shalganov b34a1e1013 Update docs
2014-01-28 19:31:26 +02:00

2.0 KiB
Raw Blame History

Tag {macro} [RU]

Макросы - фрагмент шаблона который можно повторить сколь угодно раз и в каком угодно месте. Макросы не имеют общего пространства имен с шаблоном и могут оперировать только переданными переменными.

{macro}

Обявление макроса происходит при помощи блочного тега {macro}

{macro plus($x, $y, $z=0)}
    x + y + z = {$x + $y + $z}
{/macro}

Вызов макроса происходит при помощи строкового тега {macro}. Аргументы передаются стандартно, как атрибуты в HTML тегах

{macro.plus x=$num y=100}

На данный момент рекурсивный вызов макроса не поддерживается.

{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}