mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
46 lines
2.0 KiB
Markdown
46 lines
2.0 KiB
Markdown
Tag {macro} [RU]
|
||
================
|
||
|
||
Макросы - фрагмент шаблона который можно повторить сколь угодно раз и в каком угодно месте.
|
||
Макросы не имеют общего пространства имен с шаблоном и могут оперировать только переданными переменными.
|
||
|
||
### {macro}
|
||
|
||
Обявление макроса происходит при помощи блочного тега `{macro}`
|
||
|
||
```smarty
|
||
{macro plus(x, y, z=0)}
|
||
x + y + z = {$x + $y + $z}
|
||
{/macro}
|
||
```
|
||
|
||
Вызов макроса происходит при помощи строкового тега `{macro}`. Аргументы передаются стандартно, как атрибуты в HTML тегах
|
||
|
||
```smarty
|
||
{macro.plus x=$num y=100}
|
||
```
|
||
|
||
На данный момент рекурсивный вызов макроса не поддерживается.
|
||
|
||
### {import}
|
||
|
||
Для использования маросов в другом шаблоне необходимо их импортировать при помощи тега `{import}`
|
||
|
||
```smarty
|
||
{import 'math.tpl'}
|
||
```
|
||
|
||
При импорте можно указать дргое пространство имен что бы можно было использовать одноименные макросы из разных шаблонов
|
||
|
||
```smarty
|
||
{import 'math.tpl' as math}
|
||
...
|
||
{math.plus x=5 y=100}
|
||
```
|
||
|
||
Пространство имен макросов может совпадать с названием какого-либо тега, в данном случае ничего плохого не произойдет: будет вызван макрос, а тег не исчезнит
|
||
При необходимости можно импортировать только необходимые макросы, явно указав в теге `{import}`
|
||
|
||
```smarty
|
||
{import [plus, minus, exp] from 'math.tpl' as math}
|
||
``` |