Шаблон

Шаблон модуля – файлы в папке modules/модуль/views. Название файла должно быть modules/модуль/views/модуль.view.шаблон.php.

Обычно состав файлов следующий:

  • модуль.view.form.php – выводит в пользовательской части форму (если модуль интерактивный). Например, в модуле «Вопрос-ответ» форму отправки вопроса;
  • модуль.view.list.php – выводит в пользовательской части список элементов модуля. Например, в модуле «Новости» – список новостей;
  • модуль.view.first_page.php – выводит главную страницу модуля;
  • модуль.view.id.php – выводит в пользовательской части отдельный элемент. Например, отдельную новость в модуле «Новости»; или отдельный товар в модуле «Магазин»
  • модуль.view.show_block.php – выводит шаблонную функцию модуля. Например, для модуля «Новости», вывод блока новостей для шаблонного тега show_block.

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

Подключение шаблона из контроллера происходит следующим образом:

Пример:

echo $this->diafan->_tpl->get('название_шаблона', 'название_модуля', $result);

где $result – передаваемые в шаблон данные в виде массива, полученные из модели.

В шаблоне для вызова другого шаблона можно воспользоваться сокращенной формой:

Пример:

echo $this->get('название_шаблона', 'название_модуля', $result);

Пример:

/* вывод шаблона кнопки «Купить» shop.view.buy_form
из шаблона страницы товара shop.view.id */
echo $this->get('buy_form', 'shop', array("row" => $result, "result" => $result));

В шаблоне можно выводить шаблонный тег с помощью функции htmleditor.

Пример:

// выводим шаблонным тегом динамический блок
// в шаблоне modules/news/views/news.view.id.php
echo $this->htmleditor('<insert name="show_dynamic" module="site" id="1">');
Ваши комментарии и дополнения
03 января 2017 г.
Как получить в шаблоне доступ к данным, переданным в аргументе $result, ссылка на описание метода Template::get(): http://www.diafan.ru/dokument/full-manual/developers/api/template/

Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.