使用主题预处理函数为模板添加变量

最近有好几位读者给我发了电子邮件,说本身想学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;
而后清理缓存,在浏览器中打开网站的页面,你将会发现‘嘿!你好!预处理函数!’这段字符串。若是没有发现,也不要着急,多是下面两个缘由: 你忘记清理缓存了。 在实现预处理函数时,你忘记了参数前的&符号。
相关文章
相关标签/搜索