Drupal中hook_theme函數(shù)用法

本文實(shí)例講述了Drupal中hook_theme函數(shù)用法。分享給大家供大家參考。具體如下:
在開發(fā)的時(shí)候不免要使用到drupal theme 定義。
舉個(gè)簡(jiǎn)單的例子:
function modulename_theme() { //開始定義自己的theme 使用api hook_theme
return array( //返回theme 數(shù)組
'hot_news' => array( // 給定義的theme 定義一個(gè)名稱
'arguments' => array('title' => NULL, 'teaser' => NULL, 'link' => NULL), //這些都是要傳遞的參數(shù),具體是在使用 theme('hot_news',arg1,arg2,arg3),這時(shí)使用到。
'template' => 'hot_news', //模板名稱,它會(huì)自動(dòng)搜索hot_news.tpl.php模板文件
'file' => 'get_page.inc', //這個(gè)是定義相關(guān)函數(shù)的文件,根據(jù)需要自行定義。
'path' =>drupal_get_path('module', 'modulename'), //得到文件路徑,如果theme('hot_news',arg)在template.php里面使用,需要告訴drupal具體位置,不定義,如果在template使用,它只能在template.php同目錄下查找。默認(rèn)和主題同目錄。
),
);
?>
每個(gè)參數(shù)都會(huì)寫入變量里。 variables.,比如:$variables['title'], $variables['teaser'] and $variables['link'].
接下去就可以使用:
$output = theme('hot_news', '這是標(biāo)題','haha,teaser','yes, 這是link');//使用這個(gè)時(shí)候,他會(huì)輸出定義的hot_news.tlp.php模板內(nèi)容樣式。、。
?>
還有一個(gè)功能就是預(yù)處理機(jī)制。
function template_preprocess_hot_news(&$variables) {
// $variables['title'] 的值可以使用 $title 在你的hot_news.tpl.php里面輸出
$variables['title'] = '在處理一次,讓它顯示別的title';
$variables['teaser'] = 'strng......';
$variables['link'] = l(eeeee, 'node/'.1);
}
?>
理解hook_theme,就可以自己隨心所欲來定制自己的theme。感覺到drupal的強(qiáng)大和靈活了。
總結(jié):
當(dāng)告知drupal使用theme('hook',arg)時(shí), 它需要找到hook_theme的定義,如果沒有preprocess,那直接把參數(shù)送給你tpl.php文件里。如果有,它就把theme('hook',arg)的來參數(shù),傳遞給preprocess里面,可以直接用$variables['arg']得到值,看看沒有重新賦值,如果有,那就使用新的$variables['arg'],最后輸出到tpl.php里面。
希望本文所述對(duì)大家的drupal建站有所幫助。
相關(guān)文章
drupal使用hook_form_alter()修改表單實(shí)例
這篇文章主要為大家介紹了drupal使用hook_form_alter()修改表單的實(shí)現(xiàn)方法,包括了修改多個(gè)表單與修改特定的表單,非常實(shí)用,需要的朋友可以參考下2014-11-03drupal之hook_link和hook_link_alter鉤子函數(shù)解析
這篇文章主要為大家介紹了drupal中hook_link和hook_link_alter鉤子函數(shù),實(shí)例分析了鉤子函數(shù)的具體用法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-03drupal中創(chuàng)建hook_user并調(diào)用drupal的mail函數(shù)發(fā)送email實(shí)例
這篇文章主要為大家介紹了drupal中創(chuàng)建hook_user并調(diào)用drupal的mail函數(shù)發(fā)送email實(shí)現(xiàn)方法,涉及hook函數(shù)的用法及mail函數(shù)的調(diào)用方法,需要的朋友可以參考下2014-11-04- 這篇文章主要為大家介紹了DRUPAL6中定義hook_menu參數(shù)的方法,較為詳細(xì)的講述了hook_menu的參數(shù)及其對(duì)應(yīng)的用法,對(duì)于采用drupal建站來說非常具有實(shí)用價(jià)值,需要的朋友可以參考2014-11-06
Drupal7之drupal_static函數(shù)用法解析
這篇文章主要為大家介紹了Drupal7之drupal_static函數(shù)用法,需要的朋友可以參考下2014-08-15- 這篇文章主要為大家介紹了drupal常用到的幾種過濾函數(shù),總結(jié)了常見過濾函數(shù)的具體用法,非常實(shí)用,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-03
- 這篇文章主要為大家介紹了drupal中的ip_address函數(shù)用法,實(shí)例分析了rev proxy后面的服務(wù)器IP地址的獲取方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-03
drupal函數(shù)node_get_types用法詳解
這篇文章主要為大家介紹了drupal函數(shù)node_get_types用法,針對(duì)node_get_types函數(shù)中不同參數(shù)對(duì)應(yīng)功能做了簡(jiǎn)單描述,對(duì)于drupal建站非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-06