久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Drupal主題的覆寫

來(lái)自站長(zhǎng)百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

導(dǎo)航:上一頁(yè)

Drupal模板主要就是由后綴名為info,php以及template.php文件組成的,下面我主要總結(jié)的是如何覆寫某些內(nèi)容(這就是drupal靈活性的體現(xiàn)之處)。有時(shí)你會(huì)遇到某些樣式是無(wú)法通過(guò)Drupal的核心或第三方模塊提供的HTML來(lái)實(shí)現(xiàn),這時(shí)你就要用到覆寫了。

原理:一個(gè)模塊使用模板文件或者theme函數(shù)來(lái)將他們的輸出送到模板層(就是你的主題)。這些小塊再裝配在一起就形成了最終頁(yè)面。eg:開始狀態(tài)是節(jié)點(diǎn)HTML模板文件+區(qū)塊HTML模板文件+評(píng)論HTML模板文件等這些小塊提交給你的主題,你的主題可以覆寫這些文件也可以就保持默認(rèn)情況然后裝配成最終頁(yè)面。

在覆寫主題時(shí),有個(gè)重量級(jí)模塊叫做Devel,感覺功能類似Firefox中的firebug,對(duì)定制主題十分有用。

  • 主題注冊(cè)機(jī)制

Drupal的主題注冊(cè)是維護(hù)可利用的themen hooks的緩存數(shù)據(jù)以及如何處理它們.當(dāng)啟用一個(gè)新模塊或者主題時(shí),Drupal將查找其間可以輸出主題的元素(eg:模板文件或者theme函數(shù)),然后在注冊(cè)時(shí)就存儲(chǔ)一個(gè)對(duì)這些元素的引用,當(dāng)構(gòu)建一個(gè)新的頁(yè)面時(shí),將引用它的注冊(cè)。說(shuō)了半天想說(shuō)的就是,當(dāng)你添加一個(gè)新的覆寫時(shí),(eg:一個(gè)模板文件)你需要更新下主題注冊(cè)機(jī)制。即清除緩存或訪問(wèn)下主題頁(yè)面,點(diǎn)擊下保存按鈕。

  • 覆寫所有模塊的模板文件方法:

你啟用的每一個(gè)模塊都將使用它們自己的模板來(lái)輸出數(shù)據(jù)到你的主題上,這就導(dǎo)致了你主題的一個(gè)頁(yè)面可能是由多個(gè)很小的模板文件生成的。Devel模塊能夠幫你很快的找出內(nèi)容是由哪個(gè)模板文件輸出的。

方法:拷貝模塊的模板文件到你主題的文件夾內(nèi),修改你的文件就可以了。

  • Theme 函數(shù)

因?yàn)槟K送數(shù)據(jù)給用戶有2種方法,要么是個(gè)模板文件要么是一個(gè)theme函數(shù)。2種方法都能夠創(chuàng)建同樣的輸出,只是方法不同罷了。模板文件更多的是HTML以及少量的PHP,相反,theme函數(shù)主要是PHP和少量的HTML。通常theme函數(shù)主要用于包含一個(gè)邏輯判斷來(lái)修改輸出。

方法:找到你要覆寫的函數(shù)(是以theme_開頭)拷貝到template.php文件內(nèi)(若你主題沒有,你可以創(chuàng)建一個(gè)),將函數(shù)名改成你的主題名_,或者phptemplate_.eg:theme_date------->zzbaike_date. 修改函數(shù)即可。

  • 預(yù)處理函數(shù)Preprocess Functions

主要是創(chuàng)建放在模板文件內(nèi)的變量,用在template.php文件中,eg:模板文件內(nèi)有這樣代碼

<?php
print t(‘Submitted by !username on
!datetime’,
array(‘!username’ => $name, ‘!datetime’ =>
$date));
?>

這里的$name變量包含的是什么呢?

這些變量來(lái)自模塊,被用在theme函數(shù)和模板文件內(nèi).你可以使用Preprocess 來(lái)修改這個(gè)變量在它們被用在theme函數(shù)和模板文件內(nèi)之前。

命名方法:模板文件:node.tpl.php ------》zzbaike_preprocess_node。(zzbaike為你自己的主題名) thmem函數(shù)theme_username--------》 zzbaike_preprocess_username。(zzbaike為你自己的主題名)

添加新的變量:假若現(xiàn)在你想添加一個(gè)新變量$downzzbaike給所有的模板.

方法:在template.php添加下面代碼 <ppre> function zzbaike_preprocess(&$variables) { $variables[‘downzzbaike] = ‘zzbaikewiki’; }

然后你在模板文件內(nèi)直接print $downzzbaike就行了。若你想將其限制在只用在page.tpl.php內(nèi),用下面代碼

function zzbaike_preprocess_page(&$variables) {
$variables[‘downzzbaike’] = ‘zzbaikewiki’;
}

你還可以使用變量template_file提供一個(gè)模板文件

function  zzbaike_preprocess_page(&$variables) {
$variables[‘downzzbaike’] = “zzbaikewiki”;
if ($variables[‘downzzbaike’] == “zzbaikewiki”) {
$variables[‘template_file’] = ‘page-zzbaikewiki’;
}
}

當(dāng)downzzbaike是zzbaikewiki時(shí),模板文件將使用page-zzbaikewiki.tpl.php來(lái)替代page.tpl.php