smartytemplate.php:你drupal主题的发动机
如果需要Drupal Smarty主题系统的高级特性的话,那么你需要在你的主题目录下面创建一个额外的文件(例如, e.g. themes/blumarine_smarty/smartytemplate.php).
这个文件可用来
如果需要Drupal Smarty主题系统的高级特性的话,那么你需要在你的主题目录下面创建一个额外的文件(例如, e.g. themes/blumarine_smarty/smartytemplate.php).
这个文件可用来
这里的例子来自于Drupal的论坛讨论. $hook指的是变量可用的区域(比如,对于comment.tpl.php,它就是"comment").
这个函数需要定义在一个template.php文件中,这个文件放在主题目录下面(例如: themes/box_cleanslate/template.php).
由于Smarty主题引擎是从phptemplate移植过来的,所以可参考phptemplate的解决方案.
在你主题目录下的smartytemplate.php文件(参看: smartytemplate.php:你主题的发动机)中,通过实现一个_smarty_variables函数,就可以简单的添加额外的变量了.
例如
假如你的drupal默认主题为box_grey_smarty:
在你的Drupal主题目录下,创建一个名为smartytemplate.php的文件.
Web服务器进程应该对themes/engines/smarty目录下面的templates_c子目录,具有读和写的权限.
在linux/unix环境下,解决方案如下:
如果你有chown访问权限的话:
该目录应该由你的用户拥有,一个小组也拥有这个目录的所有权,这个小组中就包括你的web服务器。比如(你的用户名称):apache。
为了能够使用基于Smarty的Drupal主题,比如Box_grey_smarty, Bluemarine_smarty, Leaf_smarty,等等,你需要首先安装Smarty主题引擎.
Smarty主题引擎由Travis Cline维护,它可以在Drupal主题中方便的使用Smarty模板引擎语法.它是从PHPTemplate主题引擎移植过来的.
正是由于它是移植过来的,所以大多数情况下, PHPTemplate的文档都可用来作为参考.
PHP主题是Drupal主题化的最直接的方式了。一个PHP主题包含了对Drupal内置主题函数的覆写。大多数情况下,你只需要覆写基本的主题钩子(比如,页面,节点,区块等等),但是你还可以覆写你想要的任何东西,比如列表和链接的主题。
为了创建一个PHP主题,你需要在你的themes目录下面创建一个子目录(我们这里假定为themes/mytheme),在子目录中,我们创建一个mytheme.theme文件。这个文件是普通的PHP文件,所以一定要包含<?php ?>标签。