【发布时间】:2011-11-23 12:45:50
【问题描述】:
我正在使用 hook_preprocess_node() 构建一个模块 我使用 hook_entity_info_alter() 为名为“vacancy_teaser”的节点实体创建了一个新的视图模式
这显示在我的节点显示设置和视图中
所以我想在使用此视图模式时使用我的模块中包含的模板。
我的代码:
/**
* Implements hook_preprocess_node().
*/
function vacancies_preprocess_node(&$vars) {
if($vars['view_mode'] == 'vacancy_teaser') {
$vars['theme_hook_suggestions'][] = 'node_vacancy_teaser';
}
}
我的模板文件被称为:'node-vacancy-teaser.tpl.php',但未在我的视图输出中使用
$vars['view_mode'] == 'vacancy_teaser' 在视图中。 (已测试)
但是$vars['theme_hook_suggestions'][] = 'node_vacancy_teaser'; 在哪里寻找模板文件?不知何故,它没有被包含/使用。
显然,在 drupal 7 中,出于某种原因需要使用双下划线。 放置在活动模板文件夹中的 node_vacatures_vacancy_teaser.tpl.php 似乎可以解决问题……尽管我认为这不是一个巧妙的解决方案,因为 tpl.php 文件与模块分离.
【问题讨论】:
标签: drupal-7