2.6 KiB
Тег {include}
Тэги {include}
используются для включения других шаблонов в текущий. Любые переменные, доступные в текущем шаблоне, доступны и во включаемом.
{include "about.tpl"}
Вы также можете передать переменные в подключаемый шаблон в виде атрибутов. Любая переменная, переданная в подключаемый шаблон, доступны только в области видимости подключаемого файла. Переданные переменные имеют преимущество перед существующими переменными с аналогичными именами.
{include "pagination.tpl" count=$total_pages current=$.get.page}
Все значения присвоенных переменных восстанавливаются после того, как подключаемый шаблон отработал. Это значит, что вы можете использовать все переменные из подключающего шаблона в подключаемом, но изменения переменных внутри подключаемого шаблона не будут видны внутри подключающего шаблона после команды {include}.
{insert}
В отличии от {include}
тег {insert}
не вызывает дочерний шаблон во время отрисовки, в ставляет код дочернего шаблона в родительский на момент компиляции.
Это позволяет сэкономить ресурсы на проверке и чтении шаблона. Однако такой формат подключения шаблона имеет ограничения.
Имя шаблона должно быть задано явно, без использования переменных и выражений:
{insert 'pagination.tpl'} {* отработает *}
{insert $pagination} {* вызовет ошибку *}
Рассмотрим тега {insert}
на примере. Допустим шаблон main.tpl
имеет следующий код:
a: {$a}
{insert 'b.tpl'}
c: {$c}
b.tpl
:
b: {$b}
Компилятор увидит шаблон main.tpl
таким:
a: {$a}
b: {$b}
c: {$c}