手机版

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

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

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文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)