我使用drupal 6和book模塊。我想更改書籍內容類型的設計。所以我需要在我的tpl文件中使用模塊的變量。 book-navigation.tpl.php中有一個名爲$ next_title的變量。我怎樣才能在我的模板文件中使用它?在模板文件中使用模塊變量
我讀了很多關於預處理函數的內容,但是我看不到一個真實的例子。
我使用drupal 6和book模塊。我想更改書籍內容類型的設計。所以我需要在我的tpl文件中使用模塊的變量。 book-navigation.tpl.php中有一個名爲$ next_title的變量。我怎樣才能在我的模板文件中使用它?在模板文件中使用模塊變量
我讀了很多關於預處理函數的內容,但是我看不到一個真實的例子。
你要使用template_preprocess_node:
http://api.drupal.org/api/drupal/includes%21theme.inc/function/template_preprocess_node/6
在你的主題的template.php文件中,這樣做:
/**
* Implements template_preprocess_node().
*/
function MY_THEME_preprocess_node(&$variables) {
if ($variables['node']->type == 'book') {
$variables['next_title'] = 'My custom next title';
}
}
沖洗Drupal的並稱功能,那麼你以後主題註冊表應該全部設置。
或者,如果您希望該功能位於自定義模塊中,則可以使用MY_MODULE_preprocess_node。
然後在你的書navigation.tpl.php(你可以使用默認的一個,或將此文件添加到您的主題目錄,並進行修改),你只需要使用:
<?php print $next_title; ?>
而且檢查出template_preprocess_book_navigation()功能:
而且一定要使用devel module's DPM功能上$變量來很容易地看到什麼是可用的,就像這樣:
dpm($variables);
book_next()函數可能在您的節點預處理器中有用。有時你必須使用預處理器動態地將變量注入到tpl.php文件中。因爲每個預處理器和每個tpl.php文件的$變量都不相同。
首先感謝您的回覆。我知道這種方法。但我想讓它變得動態。通常$ next_title對每個書籍節點都有不同的值。我想在node-book.tpl.php中使用它 – tebdilikiyafet 2013-04-11 15:55:23
$ variables ['next_title'] ='我的自定義下一個標題';這對每個書籍節點都是靜態的。 – tebdilikiyafet 2013-04-11 15:56:10
有一些變量是book-naviagtion.tpl.php,我想單獨在node-book.tpl.php中打印它們。我會瘋狂的沒有這個解決方案 – tebdilikiyafet 2013-04-11 16:17:16
看看['template_preprocess_book_navigation()'](http://api.drupal.org/api/drupal/modules!book.book.module/function/template_preprocess_book_navigation/6),這就是'$ next_title '變量來自 – Clive 2013-04-12 11:24:50
好吧,我知道,但我是一個新手。我需要指導。我克隆了這個函數,並將其名稱改爲book_preprocess_node。變量來到節點頁面,但它們都是NULL。 – tebdilikiyafet 2013-04-12 16:50:59