簡體   English   中英

hook_preprocess_page()似乎沒有使用建議的模板文件

[英]hook_preprocess_page() does not seem to use the suggested template file

我建議在模塊完成的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";
  }
}

誰能幫我嗎?

實際上,也可以從主題的template.php文件以及模塊的掛鈎中調用此掛鈎。

在此處參考Drupal 7文檔。

假設您的活動主題是MY_THEME,則代碼應為:

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

  }
}

並且模板建議將起作用。

編輯:此功能也可以通過使用鈎子的模塊實現。

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

事實是Drupal在主題目錄中查找建議的模板文件。 您有以下選擇:

  1. 將模塊建議的模板文件放在包含當前使用主題的目錄中
  2. 遵循模塊激活時“加載視圖模板”中報告的內容,以從模塊目錄加載模板文件
  3. 在主題實現的預處理功能中建議要使用的模板文件

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM