fenom/docs/ru/tags/extends.md

70 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

2016-04-12 09:37:40 +03:00
Тег `{extends}`
=============
2014-08-01 12:12:19 +04:00
Тег `{extends}` реализует [наследование](../inheritance.md) шаблонов, иерархия, обратная {include}. То есть шаблон сам выбирает своего родителя.
2014-08-01 12:12:19 +04:00
2016-04-12 09:37:40 +03:00
### `{extends}`
2014-08-01 12:12:19 +04:00
Родительский шаблон можно задать единожды и до объявления какого-либо блока.
```smarty
{extends 'parent.tpl'}
```
**Замечание:**
Имя родительского шаблона может быть задан динамически, но в этом случае производительность шаблона значительно снижается.
2014-08-01 12:12:19 +04:00
```smarty
{extends $parent_tpl}
```
2016-04-12 09:37:40 +03:00
### `{block}`
2014-08-01 12:12:19 +04:00
Блок указывает фрагмент шаблона, который будет передан родителю. Имя блока должно быть задано явно:
2014-08-01 12:12:19 +04:00
```smarty
2018-03-15 11:49:33 +03:00
{block 'bk1'}content 1{/block}
2014-08-01 12:12:19 +04:00
...
{block 'bk2'}content 2{/block}
```
2016-04-12 09:37:40 +03:00
### `{use}`
2014-08-01 12:12:19 +04:00
Что бы импортировать блоки из другого шаблона используйте тег {use}:
```smarty
{use 'blocks.tpl'}
```
2016-04-12 09:37:40 +03:00
### `{parent}`
2014-08-01 12:12:19 +04:00
```smarty
{block 'block1'}
content ...
{parent}
content ...
{/block}
2016-04-11 20:19:31 +03:00
```
2016-04-12 09:37:40 +03:00
### `{paste}`
2016-06-29 21:20:30 +03:00
Вставка кода блока в любое место через тег `{paste}`
2016-04-11 20:19:31 +03:00
```smarty
{block 'b1'}
...
{/block}
{paste 'b1'}
2016-04-12 09:37:40 +03:00
```
### `{$.block}`
Проверка наличия блока через глобальную переменную `$.block`
2016-04-12 09:37:40 +03:00
```smarty
{if $.block.header}
...
{/if}
```