1

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

在 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 文件,但它实际上并没有使用我的主题目录中的那个文件。我错过了什么?

4

2 回答 2

3

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

您应该尝试弄清楚是否是这种情况。

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

能找到吗?如果不:

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

我的直觉说这是由于模板文件所在的子目录,但您没有添加到template_files变量中:views/lists/some_list.tpl.phpsome_list.tpl.php 不同

于 2011-03-11T14:46:10.330 回答
1

您需要重建缓存以获取 tpl.php 文件。

于 2011-03-10T19:25:51.680 回答