使用主題預處理函數爲模板添加變量

最近有好幾位讀者給我發了電子郵件,說本身想學Drupal主題開發,但願我能寫一些這方面的文章。好吧,那就知足廣大讀者的要求,抽空寫幾篇吧。畢竟讀者是博客成功的基礎嘛^_^
當你們打開Drupal的模板文件時,能夠發現不少PHP變量。在不少時候,模板默認提供的這些變量有可能沒法徹底知足咱們的需求,這時咱們就須要爲模板文件添加本身的自定義變量了。該怎麼作呢?這就要用到Drupal的主題預處理函數了。
下面我舉一個Drupal主題預處理函數THEME_preprocess_HOOK(&$variables)的例子,來講明這一問題,例子很是簡單,並且沒有什麼實用價值,主要用於說明解決問題的思路,你們掌握以後能夠觸類旁通。
首先咱們在本身主題的文件夾下面建立一個template.php文件,在其中添加下列代碼。
php

function mytheme_preprocess_page(&$variables) {
  $variables['custom_text'] = t('嘿!你好!預處理函數!');
}
下面我來詳細解釋一下這段代碼:在上述代碼中函數的mytheme字段是主題的名字;page字段是預處理函數所對應的模板文件去掉擴展名以後的名字,也就是主題鉤子的名字,即:指明本函數應用於page.tpl.php模板文件。$variables變量是一個數組,咱們爲它自定義了一個鍵custom_text,這個鍵的名字就是咱們所建立的新變量的名字了,即:咱們建立的新變量名爲——$custom_text。而後,咱們爲這個變量賦予一個字符串‘嘿!你好!預處理函數!’,做爲它的值。
須要特別指出的是:翻譯函數t()原則上只能使用英語,我之因此使用漢語,只是爲了讓你們看起來方便。當你們開發實際Drupal項目時,請務必使用英語。
好了,如今變量已經有了,下面咱們就能夠在page.tpl.php文件中使用它了。打開page.tpl.php文件,在但願的位置鍵入以下代碼:
print $custom_text;
而後清理緩存,在瀏覽器中打開網站的頁面,你將會發現‘嘿!你好!預處理函數!’這段字符串。若是沒有發現,也不要着急,多是下面兩個緣由: 你忘記清理緩存了。 在實現預處理函數時,你忘記了參數前的&符號。
相關文章
相關標籤/搜索