Drupal: Как мне вызвать шаблон в модуле? - PullRequest
2 голосов
/ 10 ноября 2010

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

Я думал, что смогу сделать что-то вроде:

$html = theme('verysmallsnippet', $my_fancy_data_structure);

... затем создайте файл verysmallsnippet.tpl.php в папке активной темы, а затем ожидайте, что Drupal найдет файл шаблона и оценит шаблон с аргументами, переданными функции темы. Является ли это слишком упрощенной интерпретацией того, как работает механизм шаблонов, или мне нужно сначала настроить реестр тем? Или что?

Я посмотрел на этот вопрос , а также документацию theme , и я немного растерялся.

1 Ответ

3 голосов
/ 10 ноября 2010

Да, немного упрощенно;)

Для лучшего ознакомления, чем документация по API, с которой вы связались, начните с Тематического руководства , а для вашей конкретной потребности отметьте Использование слоя темы (Drupal 6.x) .

Чтобы ваш пример работал, вы должны сообщить реестру темы о своем шаблоне, реализовав hook_theme () :

function yourModule_theme($existing, $type, $theme, $path) {
  $items = array();
  $items['verysmallsnippet'] = array(
    'arguments' => array('my_fancy_data_structure' => array()), // Change array() to a fitting default
    'template' => 'verysmallsnippet',
  );

  return $items;
}

Вы можете определить больше деталей в этом хуке, но это минимум, который вам нужен для того, чтобы получить файл шаблона (движок добавит часть 'tpl.php' для вас, когда вы ищетефайл).

ПРИМЕЧАНИЕ: Вам необходимо запускать перестройку реестра тем каждый раз, когда вы добавляете или изменяете реализацию hook_theme (), иначе ваши изменения не вступят в силу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...