Рекомендации по разработке шаблонов

 

Куда записывать документацию по шаблонам

Имеются следующие возможности для документации по шаблонам:

  1. Краткое описание шаблона делайте в параметре $params['description'] дескриптора. Это описание будет появляться в окне редактирования.
  2. Для подробного описания шаблона используйте отдельный файл вида шаблон.md. Это описание будет появляться в нижней части окна редактирования.
  3. Описание комплекта шаблонов делайте в файле description.md, помещенном в эту подпапку комплекта. Вы увидите содержимое этого файла в подсказках под панелью замены шаблонов.

 

Конфигурационные и управляющие файлы шаблона

  • В статье "Предобработчик дескриптора" рассматривается, как можно управлять параметрами выборки из базы данных.

  • Если при каждом назначении шаблона нужны свои настройки, то лучше использовать доп.данные, которые можно менять прямо в окне редактирования.

  • А теперь рассмотрим другой пример. Допустим, мы создаем шаблон формы, открывающейся в модальном окне через Ajax и предназначенный для отправки сообщений. В зависимости от дополнительного url-параметра в кнопке открывания модального окна, должны появляться различные поля и меняться адресаты.

    Скорее всего, такой шаблон должен назначаться только один раз на весь сайт. Для управления шаблоном, не помогут ни обычные редактируемые данные, ни экстраданные.

    И на помощь здесь приходит предобработчик шаблона

  • См. также Конфигурационный файл сайта

  • См. также Блок для настройки других блоков

 

Дополнительная папка для файлов шаблона

Кроме основных файлов шаблона для работы шаблона могут понадобиться другие файлы: картинки, библиотеки скриптов и т.п.

Например, в шаблоне нужны постоянные стилевые картинки. Обычно их помещают в общую папку для картинок templates/images. Однако, если таких картинок много, и они используются только в данном шаблоне, то лучше создать специальную папку, относящуюся только к данному шаблону. Это будет полезным и с точки зрения переносимости шаблона в другие проекты. Естественно, этой папке лучше дать имя шаблона.

Коль скоро, вы создали папку, имеет смысл перести туда файлы: *.css и *.js, и подключать их с помощью метода Blox::addToHead() в файле *.tpl. При этом, договоримся, не переименовывать эти файлы, то есть, оставлять с именем шаблона и со своим расширением.

Короче говоря, перенесите в папку шаблона все файлы, кроме: *.tdd, *.tpl, *.tplh, *.tddh, *.tuh.

 

Как найти шаблон - источник ошибки

Если по лог-файлу ошибок PHP и лог-файлу ошибок BloxCMS (---blox-errors.log) найти ошибку не удается, можно применить следующий способ для выявления проблемного блока.

  1. Зайдите в папку ./assigned на сайте.
  2. В текстовом редакторе откройте дескриптор (.tdd) корневого шаблона страницы, на которой происходит ошибка, и в массиве $types поочередно комментируйте элементы с block-данными .
  3. Исчезновение ошибки означает, что вы отключили проблемный блок.
  4. Аналогичные действия проделайте в дескрипторе найденного вложенного блока, и так — до самого нижнего блока.
Таким образом вы быстро сузите круг поиска.

Внимание! Редактировать нужно дескриптор в папке "./assigned", а не "./templates", иначе в режиме админа произойдет настоящее удаление блока.

См. также