-
Notifications
You must be signed in to change notification settings - Fork 1
include
{* форма 1 *}
{? include <template_name>; ?}
{? include_once <template_name>; ?}
{* форма 2 *}
{? include <template_name> <argument>; ?}
{? include_once <template_name> <argument>; ?}
{* форма 3 *}
{? include <template_name> <argument1> <argument2> [argument3 [argumentN ...]]; ?}
{? include_once <template_name> <argument1> <argument2> [argument3 [argumentN ...]]; ?}
Включает содержимое шаблона <template_name> в место конструкции include или include_once. Расширение файла шаблона указывать не нужно. Файл ищется по пути, указанному при инициализации в Template::init
В отличие от include, include_once позволяет включать файл <template_name> лишь единожды за вызов Template::build.
Так как третья форма позволяет задать множество аргументов, перечисляя их через пробел, то в конце каждой конструкции include или include_once необходимо обязательно ставить ;, чтобы следующие за ней конструкции не были восприняты, как аргументы, которые необходимо передать включаемому шаблону!
Однако в случае следующего за конструкцией include окончания блока конструкций (?}) можно опустить ;. Пример смотрите ниже.
В первой форме записи конструкции включаемый шаблон получает доступ ко всем тем же аргументам, которые были переданы текущему.
Во второй форме включаемый шаблон использует <argument> в качестве ассоциативного массива входных аргументов.
Например, пусть шаблон mail_message выглядит следующим образом:
Здравствуйте, {{name}}! Ваше сообщение:
{? include message msg ?}
Массив переданных аргументов:
[
'name' => 'Алексей',
'msg' => [
'id' => 1,
'text' => 'сообщение',
],
]Тогда шаблон message будет иметь доступ к следующим аргументам:
[
'id' => 1,
'text' => 'сообщение',
]В третьей форме записи каждый аргумент <argumentN> передается индексированным массивом, слева-направо, начиная с индекса 0.
Например, перепишем шаблон mail_message следующим образом:
Здравствуйте, {{name}}! Ваше сообщение:
{? include message msg.id msg.text ?}
Тогда шаблон message будет иметь доступ к следующим аргументам:
[1, 'сообщение']
//или
[
0 => 1,
1 => 'сообщение',
]Обратиться из шаблона message к переданным аргументам можно с помощью ключевого слова this, например #{{ this[0] }}: {{ this[1] }}