2011-03-10 64 views
1

我想組織我的主題文件夾,其中節點主題覆蓋了幾十個視圖。基本上我有兩種不同的風格,我希望它們看起來都一樣,或多或少。自定義Drupal主題模板文件沒有被使用

在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; 
} 

當我看在主題開發者,我可以看到列表view.tpl.php文件存在,但它不是真正使用該文件來自我的主題目錄。我錯過了什麼?

回答

3

正如你可以在theme()中看到的,如果Drupal根據drupal_discover_template()存在,它實際上只會使用一個模板。

你應該試着弄清楚是不是這種情況。

  • 發生在主題()函數的一些調試代碼包括/ theme.inc看什麼drupal_discover_template()回報vairious模板調用。

它能找到它嗎? 如果不是:

  • 發生在drupal_discover_template()一些調試代碼,找出Drupal的認爲它不再是一個模板。

我的直覺,感覺說,這是由於在模板文件所在的子目錄,但你還沒有加入到template_files變量:的意見/表/ some_list.tpl.php是不一樣的some_list.tpl.php

+0

好主意 - 我通過使用已經註冊的其他模板文件來獲得該代碼的工作。謝謝! – 2011-03-11 22:13:49

1

您需要重新構建tpl.php文件的緩存以供拾取。

+0

即使使用devel/drush/performance清除緩存,它也不起作用。也沒有嘗試使用hook_theme函數註冊我的默認模板。 – 2011-03-10 19:36:14

+0

我認爲你需要重新掃描視圖模板中的視圖主題信息以獲取模板。 – junedkazi 2011-03-10 19:53:30

+0

另外我不認爲你需要那段代碼。希望這有助於http://drupal.org/node/352970 – junedkazi 2011-03-10 19:56:14