2016-01-09 54 views
0

我想在我的node.tpl.php文件中打印動作「選項卡」。我添加預處理功能如下─drupal theme_preprocess_node函數沒有從模板文件執行

功能MYTHEME_preprocess_node(& $變量$鉤){

$變量[ 'page_tabs'] = menu_local_tabs();

}

然後想在我TPL打印像下面。

print $page_tabs; 

但它沒有得到執行。當我試圖像下面那樣退出時感染控件不會進入預處理函數 -

function MYTHEME_preprocess_node(&$variables, $hook) { 

echo "good bye"; 
exit; 
} 

任何幫助都非常感謝。由於

+0

你與你的主題右側的名稱替換MyTheme的:

你需要編輯您的節點和打印與否$標籤變量的頁面模板父節點的節點上添加或刪除編輯/查看標籤?如果是這樣,請仔細檢查您的主題是否已激活並默認設置。 –

+0

是MYTHEME被替換爲我的主題名稱。我加倍檢查了一切,清除了我所做的一切,但不理解爲什麼控制不進去。 –

+0

我沒有問,但你的預處理是在template.php文件?或者在.module文件中不在node.tpl.php中? –

回答

0

你的函數的語法似乎是錯誤的,它是一個hook_preprocess_HOOK: https://api.drupal.org/api/drupal/modules!system!theme.api.php/function/hook_preprocess_HOOK/7 所以,你不應該在函數聲明第二個變量($鉤),這可能是爲什麼它不是由核心調用。 https://api.drupal.org/api/drupal/modules!system!page.tpl.php/7

+0

感謝您的回覆。我按照你的建議刪除了$ hook變量,並且我試圖每次添加一條消息,如下所示:# 函數mytheme_preprocess_node(&$變量){變量['something'] =「你好,這是一些東西「; drupal_set_message(「你好,我在我的mytheme_preprocess_node」); } 但它打印的信息有時它的打印和某個時間不。另外,我無法在我的node.tpl.php文件中打印任何東西。 –

+0

它可能是由於緩存,如果它看起來隨機顯示。每次清除它並/或禁用它(配置>開發>性能)。否則,如果node.tpl.php中沒有任何內容顯示,我看到atm的唯一解釋是,您具有特定節點類型的模板,就像如果您的內容類型爲custompage一樣,您必須具有名爲的模板文件:node - custompage .tpl.php,所以如果你顯示這種類型的節點,你將不會運行node.tpl.php。 –