自定义Drupal主题模板文件未被使用

时间:2011-03-10 19:23:19

标签: drupal views drupal-theming drupal-themes

我正在尝试组织我的主题文件夹,其中包含节点主题覆盖数十个视图。基本上我有两种不同的风格,我希望它们看起来都一样,或多或少。

我是否可以在template.php中执行此操作?什么是最好的方式?

我在我的主题的hook_preprocess_node函数中尝试了这段代码:

switch($vars['view']->name) {
 case 'taxonomy_term' :
   switch($vars['view']->current_display) {
     case 'page' :
       array_push($vars['template_files'], 'list-view');
     default :
       break;
   }
   break;
 default :
   break;
}

当我查看主题开发人员时,我可以在那里看到list-view.tpl.php文件,但它实际上并不是使用来自我的主题目录的文件。我错过了什么?

2 个答案:

答案 0 :(得分:3)

正如您在theme()中所看到的,Drupal只会根据drupal_discover_template()实际使用模板。

你应该试着弄清楚是不是这样。

  • includes / theme.inc 的theme()函数中放置一些调试代码,以查看drupal_discover_template()返回的模板调用。

能找到它吗? 如果不是:

  • drupal_discover_template()中放置一些调试代码,以找出Drupal认为它不再是模板的位置。

我的直觉是,这是由于模板文件所在的子目录所在,但尚未添加到template_files变量: views / lists / some_list.tpl.php some_list.tpl.php 不同。

答案 1 :(得分:1)

您需要重建要拾取的tpl.php文件的缓存。