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

最近有好几位读者给我发了电子邮件,说自己想学Drupal主题开发,希望我能写一些这方面的文章。好吧,那就满足广大读者的要求,抽空写几篇吧。毕竟读者是博客成功的基础嘛^_^
当大家打开Drupal的模板文件时,可以发现很多PHP变量。在很多时候,模板默认提供的这些变量有可能无法完全满足我们的需求,这时我们就需要为模板文件添加自己的自定义变量了。该怎么做呢?这就要用到Drupal的主题预处理函数了。
下面我举一个Drupal主题预处理函数THEME_preprocess_HOOK(&$variables)的例子,来说明这一问题,例子非常简单,而且没有什么实用价值,主要用于说明解决问题的思路,大家掌握之后可以举一反三。
首先我们在自己主题的文件夹下面创建一个template.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;
然后清理缓存,在浏览器中打开网站的页面,你将会发现‘嘿!你好!预处理函数!’这段字符串。如果没有发现,也不要着急,可能是下面两个原因:
你忘记清理缓存了。
在实现预处理函数时,你忘记了参数前的&符号。

转载于:https://my.oschina.net/haojay/blog/94923

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值