2011-03-18 55 views
0

我應該如何知道哪些變量和對象可以直接在這個文件中使用(例如:$ node,$ term ....)謝謝。drupal template.php

+0

Drupal的問題有是drupal.stackexchange.com。 – kiamlaluno 2011-03-18 10:03:50

回答

1

文檔中一起來看看在template.php文件

/** 
* Override or insert PHPTemplate variables into the templates. 
*/ 
function phptemplate_preprocess_node(&$vars) { 
    _vdump(get_defined_vars(), 1); 
} 

/** 
* Override or insert PHPTemplate variables into the templates. 
*/ 
function phptemplate_preprocess_page(&$vars) { 
    _vdump(get_defined_vars(), 1); 
} 

並添加轉儲功能,自定義模塊

/* 
* Custom dump function 
* 
* @param $vars 
* An string or array containing the data. 
* @param $keys 
* If true6 function will return keys of $vars array 
* @return a dump of $vars as drupal message. 
*/ 
function _vdump($var, $keys = FALSE) { 
    if($keys){ 
    drupal_set_message('<pre>' . print_r(array_keys($var), 1) . '</pre>'); 
    } 
    else { 
    drupal_set_message('<pre>' . print_r($var, 1) . '</pre>'); 
    } 
} 
+0

謝謝,但我不知道在哪個頁面上我可以看到輸出結果。 – enjoylife 2011-03-18 03:10:37

+0

你可以在任何頁面上看到結果 – dobeerman 2011-03-18 04:24:45

0

我猜你在談論創建/修改主題。你可以使用大部分standard Drupal globals。您始終可以使用get_defined_vars來查看是否有其他變量已被定義。

+0

謝謝。我可以使用template.php中的$ term,$ node對象 – enjoylife 2011-03-18 01:49:00

+0

我不這麼認爲。我認爲你應該使用[page.tpl.php](http://drupal.org/node/11812)或[node.tpl.php](http://drupal.org/node/11816) – Thomas4019 2011-03-18 01:56:10

0

template.php文件中沒有這樣的變量。 你覺得$node$terms,...你在page.tpl.php或node.tpl.php找到?

如果是,那麼這些變量將在preprocess函數中生成。

模塊可以實現那些鉤子來定義可以直接在這些文件中使用的新變量,或者template.php也可以定義一些新變量。

請有關於preprocess

+0

這個代碼來自template.php中的某個人:function garland_separate_terms($ node_taxonomy)if($ node_taxonomy){foreach($ node_taxonomy AS $ term){ $ links [$ term-> vid] ['taxonomy_term_'。 $ term-> tid] .... 爲什麼他可以直接使用$ term對象。 – enjoylife 2011-03-18 03:12:41

相關問題