Урок - Хук hook_theme() в Drupal 6.

Главная » Курсы » Курс Drupal 6, Темизация. » Урок - Хук hook_theme() в Drupal 6.

Обучающий онлайн курс
Drupal 6, Темизация.

Лицензия: Копирование запрещено.

Начиная с 6-ой версии Друпала, каждый шаблон, определенный в модуле, нужно зарегистрировать в этом модуле посредством hook_theme(), чтобы Drupal 6 знал, где искать шаблон, и упростить модификацию шаблонов.


И так, шаблоны темизации регистрируются в hook_theme(). Хук hook_theme() должен возвращать ассоциативный массив описаний хуков темизации, которые реализованы в данном модуле. Каждое из описаний в свою очередь является ассоциативным массивом.

Drupal 6 дает возможность реализовывать шаблоны в виде

  • Шаблон-функция
  • Шаблон-файл

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

Обязательно каждый модуль должен предоставить свою реализацию для всех шаблоно, которые он регистрирует. Реализацией шаблона-функции по умолчанию должна быть функция theme_<имя_шаблона>(). Реализацей шаблона-файла должен быть файл находящийся в одной директории с файлом-модуля (файл .module), определяющим эти хуки.

Стандартный обработчик шаблонов Друпала просто выполняет шаблон как скрипт PHP и возвращает результат. Движок тем Друпала можно расширить, добавив поддержку альтернативных обработчиков шаблонов, таких как XTemplate, Smarty или PHPTal. Чаще всего темы Друпала используют движок под названием PHPTemplate (входит в стандартную поставку Друпала, файл phptemplate.engine), использующий стандартный обработчик шаблонов Друпала.

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