2013-05-18 42 views
0

我在模塊hook_preprocess_page()實現中建議使用模板文件,但建議的模板文件似乎沒有被使用。hook_preprocess_page()似乎沒有使用建議的模板文件

模板文件是page-terminal-template.tpl.php,它位於包含模塊的目錄中,這是hook_preprocess_page()的實現。

function terminal_preprocess_page(&$variables) { 
    if (arg(0) == "terminal") { 
    $variables['theme_hook_suggestions'][] = "page__terminal_template"; 
    } 
} 

任何人都可以幫我嗎?

回答

0

實際上,這個鉤子也可以從主題的template.php文件和模塊的鉤子中調用。

請參考Drupal 7文檔here

說,如果你的活動主題是MY_THEME,則代碼應該是:

function MY_THEME_preprocess_page(&$variables) { 
    if (arg(0) == "terminal") { 
     $variables['theme_hook_suggestions'][] = "page__terminal_template"; 

    } 
} 

和模板建議將正常工作。

編輯:此功能也可以使用鉤子模塊實現。

+0

我的主題名稱是journalcrunch.so我用journalcrunch__preprocess_page($變量){在template.php文件中仍然被調用的函數,但沒有主題 – arteta

+0

更正函數名journalcrunch_preprocess_page($變量){ – Pupil

+0

抱歉錯誤。我寫了函數名稱爲journalcrunch_preprocess_page(&$ variables)。在註釋的同時,我輸入了一個額外的下劃線。我清除了緩存並且仍然不工作。 – arteta

0

預處理和處理功能可以由模塊實現。實際上,當theme()的文檔顯示這些函數被調用的順序時,它們會列出它們。

事實是,Drupal在主題目錄中查找建議的模板文件。你有這些選擇:

  1. 把模板文件的模塊暗示目錄包含當前使用的
  2. 按照Load view template on module activation什麼報道,從模塊目錄
  3. 建議模板加載模板文件的主題您想要在由主題實現的預處理功能中使用的文件

按照其他問題中報告的內容,您將能夠使用模塊目錄中找到的模板文件。唯一的問題是您將使用通用模板,該模板可能與當前啓用的主題中使用的默認頁面模板不同。

如果您要爲當前啓用的主題添加模板文件,則應在您將新模板文件添加到主題後,調用drupal_theme_rebuild()以使Drupal重新掃描包含模板文件的目錄。