70 lines
1.6 KiB
Markdown
70 lines
1.6 KiB
Markdown
Тег `{extends}`
|
||
=============
|
||
|
||
Тег `{extends}` реализует [наследование](../inheritance.md) шаблонов, иерархия, обратная {include}. То есть шаблон сам выбирает своего родителя.
|
||
|
||
### `{extends}`
|
||
|
||
Родительский шаблон можно задать единожды и до объявления какого-либо блока.
|
||
|
||
```smarty
|
||
{extends 'parent.tpl'}
|
||
```
|
||
|
||
**Замечание:**
|
||
Имя родительского шаблона может быть задан динамически, но в этом случае производительность шаблона значительно снижается.
|
||
```smarty
|
||
{extends $parent_tpl}
|
||
```
|
||
|
||
### `{block}`
|
||
|
||
Блок указывает фрагмент шаблона, который будет передан родителю. Имя блока должно быть задано явно:
|
||
|
||
```smarty
|
||
{block 'bk1'}content 1{/block}
|
||
...
|
||
{block 'bk2'}content 2{/block}
|
||
```
|
||
|
||
|
||
### `{use}`
|
||
|
||
Что бы импортировать блоки из другого шаблона используйте тег {use}:
|
||
|
||
```smarty
|
||
{use 'blocks.tpl'}
|
||
```
|
||
|
||
### `{parent}`
|
||
|
||
```smarty
|
||
{block 'block1'}
|
||
content ...
|
||
{parent}
|
||
content ...
|
||
{/block}
|
||
```
|
||
|
||
### `{paste}`
|
||
|
||
Вставка кода блока в любое место через тег `{paste}`
|
||
|
||
```smarty
|
||
{block 'b1'}
|
||
...
|
||
{/block}
|
||
|
||
{paste 'b1'}
|
||
```
|
||
|
||
### `{$.block}`
|
||
|
||
Проверка наличия блока через глобальную переменную `$.block`
|
||
|
||
```smarty
|
||
{if $.block.header}
|
||
...
|
||
{/if}
|
||
```
|