Как хранить шаблоны Views с модулем вместо темы

13

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

У меня вопрос, как я могу перенести эти файлы темы (например, views-view-field.tpl.php.) В каталог модулей и сделать их видимыми в Views?

Глядя на модули Views, я вижу, что шаблоны по умолчанию хранятся в views / theme, но я не вижу, как это было реализовано.

Citricguy
источник

Ответы:

29

Мне потребовалось некоторое время, чтобы понять это. Следующий код должен быть помещен в ваш файл .module (предполагается, что ваш модуль называется «NAME»)

/**
* Implements hook_views_api().
*
* Enabling using templates inside module
*/
function NAME_views_api() {
  return array(
    'api' => 3,
    'path' => drupal_get_path('module', 'NAME'),
    'template path' => drupal_get_path('module', 'NAME'),
  );
}

Это скажет Views искать в корневом каталоге вашего модуля. Лично я являюсь поклонником добавления в модуль подкаталога для файлов шаблонов. Для этого добавьте имя каталога в конец пути шаблона, например:

'template path' => drupal_get_path('module', 'NAME') . '/templates',
Рикан Мантелл
источник
Добавление их в подкаталог - это фантастическая идея, она все проясняет и работает отлично. Будущие поисковики обязательно очистят ваш кеш Drupal. Спасибо @Reekan Mantell
Citricguy
Спасибо! Я месяцами взламывал свою админскую тему, чтобы перевернуть поле просмотра в семь. Теперь мне не нужно.
JM01
И я должен сказать, что вы все еще можете использовать TPL в своей теме, даже если вы реализовали этот код. Благодарю.
Anou
2
Это не будет работать с модулями Особенности, вместо этого используйте, hook_views_api_alter()как отмечено здесь: deeson.co.uk/labs/views-templates-features-module
Обри Робертсон