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

时间:2025-06-08

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

你有没有见过Drupal核心中是怎么调用这些主题函数的?你永远都不会看到直接调用theme_breadcrumb()的情况。替代的,它通常包装在帮助函数theme()中。你期望这样调用这个函数:

theme_breadcrumb($breadcrumb)

但实际不是这样。替代的,你将看到开发者这样调用:

theme('breadcrumb', $breadcrumb);

这个通用的theme()函数负责初始化主题层,并将函数调用分发到合适的位置,这使得我们能够以更优雅的方式来解决我们的问题。图8-5展示了通过调用theme(),指示Drupal按照下面的次序查来找相应的面包屑函数。

假定你使用的主题为Greyscale,,它是基于PHPTemplate的主题,那么Drupal将会查找下面的函数(我们暂且忽略一下breadcrumb.tpl.php):

greyscale_breadcrumb()

phptemplate_breadcrumb()

sites/all/themes/custom/greyscale/breadcrumb.tpl.php

theme_breadcrumb()

我们看到函数phptemplate_breadcrumb()可以覆写内置的面包屑函数,那么我们要把这个函数放到哪里呢?

很简单,那就是你主题的template.php文件,在这里你可以覆写Drupal的默认主题函数,拦截和创建传递给模板文件的自定义变量.

注意 在做这些练习的时候,不要使用Garland作为当前主题,因为Garland已经有了一个template.php文件.替代的,在这里可以使用Greyscale或者Bluemarine.

为了修改Drupal的面包屑,创建文件sites/all

/themes/custom/greyscale/template.ph,并将theme.inc中的

theme_breadcrumb()函数复制 并粘贴到该文件里面。记住要包含<?php标签。还有对函数要进行重命名,将theme_breadcrumb改为

phptemplate_breadcrumb。接着,导航到“管理 站点构建 模块”以重新构建主题注册表,这样Drupal就能够找到你的新函数了。

<?php

/**

* Return a themed breadcrumb trail.

*

* @param $breadcrumb

* An array containing the breadcrumb links.

* @return a string containing the breadcrumb output.

Drupal6 pro Drupal development(专业开发指南)TheThemeSys(17).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219