Документация Smarty


{include}

Тэги {include} используются для включения других шаблонов в текущий. Любые переменные, доступные в текущем шаблоне, доступны и во включаемом. Тэг {include} должен иметь атрибут 'file', который указывает путь к ресурсу шаблона.

Опциональный атрибут assign указывает, что результат выполнения {include} будет присвоен переменной вместо отображения.

Все значения присвоенных переменных восстанавливаются после того, как подключаемый шаблон отработал. Это значит, что вы можете использовать все переменные из подключающего шаблона в подключаемом, но изменения переменных внутри подключаемого шаблона не будут видны внутри подключающего шаблона после команды {include}.

Имя атрибутаТипОбязателенПо умолчаниюОписание
filestringДаn/aИмя файла шаблона для включения
assignstringНетn/aИмя переменной, которой присвоится вывод шаблона
[var ...][var type]Нетn/aПеременные, переданные в локальную область включаемого шаблона

Пример 7-10. Функция {include}

<html>
 <head>
  <title>{$title}</title>
 </head>
 <body>
  {include file='page_header.tpl'}
  {* тут идёт тело шаблона *}
  {include file="$tpl_name.tpl"} <-- заменит $tpl_name его значением
  {include file='page_footer.tpl'}
 </body>
</html>

Вы также можете передать переменные в подключаемый шаблон в виде атрибутов. Любая переменная, переданная в подключаемый шаблон, доступны только в области видимости подключаемого файла. Переданные переменные имеют преимущество перед существующими переменными с аналогичными именами.

Пример 7-11. передача переменных в {include}

{include file='header.tpl' title='Main Menu' table_bgcolor='#c0c0c0'}

{* тут идёт тело шаблона *}

{include file='footer.tpl' logo='http://my.example.com/logo.gif'}

где header.tpl может быть

<table border='1' width='100%' bgcolor='{$table_bgcolor|default:"#0000FF"}'>
 <tr>
  <td>
   <h1>{$title}</h1>
  </td>
 </tr>
</table>

Пример 7-12. {include} и присвоение переменной

Этот пример присвоит содержимое nav.tpl переменной $navbar, которая затем выводится сверху и снизу страницы.

<body>
{include file='nav.tpl' assign=navbar}
{include file='header.tpl' title='Main Menu' table_bgcolor='#effeef'}
{$navbar}

{* тут идёт тело шаблона *}

{include file='footer.tpl' logo='http://my.example.com/logo.gif'}
{$navbar}
</body>

Для подключения файлов вне папки $template_dir можно указывать файл с помощью ресурсов.

Пример 7-13. Примеры ресурсов шаблонов в {include}

{* абсолютные пути *}
{include file='/usr/local/include/templates/header.tpl'}

{* абсолютные пути (то же самое) *}
{include file='file:/usr/local/include/templates/header.tpl'}

{* абсолютные пути в windows (ОБЯЗАТЕЛЬНО используйте префикс "file:") *}
{include file='file:C:/www/pub/templates/header.tpl'}

{* подключение шаблона из ресурса с именем "db" *}
{include file='db:header.tpl'}

{* подключение шаблона с переменным именем - например, $module = 'contacts' *}
{include file="$module.tpl"}
{* не будет работать, т.к. в одинарных кавычках не работает подстановка переменных *}
{include file='$module.tpl'}

См. также {include_php}, {insert}, {php}, Ресурсы and Составные шаблоны.

SAPE все усложнил?

MainLink - простая и прибыльная продажа ссылок!

Последние поступления:

Размещена 10 августа 2020 года

Я по ТВ видел, что через 10 лет мы будем жить лучше, чем в Германии...
Я не понял, что это они с Германией сделать хотят?!

читать далее…

ТехЗадание на Землю

Размещена 14 марта 2018 года

Пpоект Genesis (из коpпоpативной пеpеписки)

читать далее…

Шпаргалка по работе с Vim

Размещена 05 декабря 2017 года

Vim довольно мощный редактор, но работа с ним не всегда наглядна.
Например если нужно отредактировать какой-то файл например при помощи crontab, без знания специфики работы с viv никак.

читать далее…

Ошибка: Error: Cannot find a valid baseurl for repo

Размещена 13 сентабря 2017 года

Если возникает ошибка на centos 5 вида
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/

читать далее…

Linux Optimization

Размещена 30 июля 2012 года

Prelink

читать далее…