mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
59 lines
2.8 KiB
Markdown
59 lines
2.8 KiB
Markdown
Тег {include}
|
||
=============
|
||
|
||
Тэги `{include}` используются для включения других шаблонов в текущий. Любые переменные, доступные в текущем шаблоне, доступны и во включаемом.
|
||
|
||
```smarty
|
||
{include "about.tpl"}
|
||
```
|
||
|
||
Вы также можете передать переменные в подключаемый шаблон в виде атрибутов.
|
||
Любая переменная, переданная в подключаемый шаблон, доступны только в области видимости подключаемого файла.
|
||
Переданные переменные имеют преимущество перед существующими переменными с аналогичными именами.
|
||
|
||
```smarty
|
||
{include "pagination.tpl" count=$total_pages current=$.get.page}
|
||
```
|
||
|
||
Все значения присвоенных переменных восстанавливаются после того, как подключаемый шаблон отработал.
|
||
Это значит, что вы можете использовать все переменные из подключающего шаблона в подключаемом, но изменения переменных внутри подключаемого шаблона не будут видны внутри подключающего шаблона после команды {include}.
|
||
|
||
Если требуется сохранить результат отрисовки шаблона в переменную то используйте `$.fetch($templates, $values)`:
|
||
|
||
```smarty
|
||
{set $data = $.fetch('user.tpl', ["name" => $data.name, "email" => $data.email])}
|
||
```
|
||
|
||
### {insert}
|
||
|
||
В отличии от `{include}` тег `{insert}` не вызывает дочерний шаблон во время отрисовки, в ставляет код дочернего шаблона в родительский на момент компиляции.
|
||
Это позволяет сэкономить ресурсы на проверке и чтении шаблона. Однако такой формат подключения шаблона имеет ограничения.
|
||
Имя шаблона должно быть задано явно, без использования переменных и выражений:
|
||
|
||
```smarty
|
||
{insert 'pagination.tpl'} {* отработает *}
|
||
{insert $pagination} {* вызовет ошибку *}
|
||
```
|
||
|
||
Рассмотрим тега `{insert}` на примере. Допустим шаблон `main.tpl` имеет следующий код:
|
||
|
||
```smarty
|
||
a: {$a}
|
||
{insert 'b.tpl'}
|
||
c: {$c}
|
||
```
|
||
|
||
`b.tpl`:
|
||
|
||
```
|
||
b: {$b}
|
||
```
|
||
|
||
Компилятор увидит шаблон `main.tpl` таким:
|
||
|
||
```smarty
|
||
a: {$a}
|
||
b: {$b}
|
||
c: {$c}
|
||
```
|