你现在的位置:首页 > PHP网站建设知识库 > Drupal > 正文

Drupal 覆盖现有的主题函数

PHPtemplate 引擎允许将模板映射到特定的 主题函数(theme function)。主题函数提供生成 Web 内容的一般性方法,模块使用它们提供 Drupal 中的核心函数或者对 Drupal 进行扩展。

以 theme_links 函数为例。对于一系列 xHTML 锚元素(链接),theme_links 将返回一个包含这些链接的字符串,链接之间以给定的字符分隔。这是一个非常简单的构造块。清单 6 修改输出,用 class 属性值为 links 的 DIV 元素包围链接的列表。

在单独主题的目录中可以使用一个特殊文件,它称为 template.php。如果这个文件存在,Drupal 就使用它覆盖主题系统的默认操作。在 template.php 文件中,可以创建 清单 6 所示的函数:

清单 6. template.php 文件中的 phptemplate_links 函数

function phptemplate_links($links, $delimiter = ' | ') { if (!is_array($links)) { return ''; } $content = '<div class="links">'; $content .= implode($delimiter, $links); $content .= '</div>'; return $content; }
通过在 template.php 文件中创建 phptemplate_links 函数,我们让 Drupal 覆盖默认的 theme_links 函数。在 覆盖的函数 中,我们在链接列表外边加上 DIV 元素并返回产生的字符串。