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


13

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

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

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

Ответы:


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
Обри Робертсон

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.