手机版

Drupal6 pro Drupal development(专业开发指南)TheThemeSys(16)

发布时间:2021-06-06   来源:未知    
字号:

Drupal6 pro Drupal development(专业开发指南)TheThemeSystem主题系统

用theme('node')。根据所启用的主 题,theme_node()将用来生成HTML,或者使用一个名为node.tpl.php的模板文件来生成HTML。

可以在多个层次上,对这个流程进行覆写。例如,主题可以覆写内置的主题函数,所以,当调用theme('node')时,那么将会调用 greyscale_node(),而不是默认的theme_node()。模板文件也有命名约定,我们将在后对它进行讲解,所以,模板文件node- story.tpl.php将专门负责Story类型的节点。 覆写可主题化的项目

Drupal的主题系统背后的核心哲理和钩子系统的类似。通过遵循命名规范,就可以标识出哪些函数是主题相关的函数,它们负责格式化并返回你站点的内容,或者使用模板文件负责输出HTML内容。

覆写主题函数

正如你看到的,可主题化的项目是通过它们的函数名来标识的,每个函数名前都带有前缀“theme_”, 或者还可以通过模板文件来标识。这一命名规范使得Drupal能够为所有的可主题化函数创建一个函数覆写机制。这样,设计者就可以指示Drupal执行一 个具有更高优先级的自定义函数,从而替代开发者在模块中给出的默认的主题函数,或者替代Drupal的默认模板文件。例如,让我们检查一下,在构建站点的 面包屑时该流程是怎么工作的。

打开includes/theme.inc文件,并检查里面的函数。这里的许多函数都以theme_开头,这就告诉人们它们是可以被覆写的。特别的,我们看看

theme_breadcrumb():

/**

* Return a themed breadcrumb trail.

*

* @param $breadcrumb

* An array containing the breadcrumb links.

* @return a string containing the breadcrumb output.

*/

function theme_breadcrumb($breadcrumb) {

if (!empty($breadcrumb)) {

return '<div class="breadcrumb">'. implode(' » ', $breadcrumb) .'</div>'; }

}

这个函数控制着Drupal中面包屑导航条的HTML输出。当前,它在面包屑的每一项之间添加了一个向右的双箭头分隔符(»)。假定你想将div标签改为span标签,并使用星号(*)来代替双箭头(»)。那么你该怎么办呢?一种方式是在theme.inc中修改这个函数,保存,并调用。这样也能达到目的。(别!别!千万别这样做!)。我们有更好的方式。

Drupal6 pro Drupal development(专业开发指南)TheThemeSys(16).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)