手机版

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

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

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

假定你和一个设计者一同工作,你告诉他/她“从代码中找到主题函数并对其进行覆写”,这是不是有点难为人了?幸运的是,有另一种方式,使得设计者能够更容易的修改外观。你可以将匹配的可主题化项目替换为它们自己的模板文件,我将通过大家熟悉的面包屑例子来说明这一点。

在我们开始以前,首先确保没有主题函数对heme_breadcrumb()进行了覆写。所以,如果你在前面的一节中,在你主题的template.php文件里面创建了phptemplate_breadcrumb()函数的话,那么把它注释掉。接着创建文件

sites/all/themes/custom/greyscale/breadcrumb.tpl.php。这是面包屑的新模板文件。因为我们想将<div>标签替换为<span>标签,继续前进,向该文件中添加以下内容:

<?php if (!empty($breadcrumb)): ?>

<span class="breadcrumb"><?php print implode(' ! ',

$breadcrumb) ?></span>

<?php endif; ?>

现在设计者就很容易编辑文件了。现在你需要告诉Drupal,在显示面包屑时调用这个模板文件。为了实现这一点,你需要导航到“管理 站点构建 模块”,来重新构建主题注册表。在重新构建主题注册表的时候,Drupal将找到你的breadcrumb.tpl.php文件,并将面包屑的可主题化项目映射到该模板文件上。

添加和操纵模板变量

问题又来了:如果你可以创建你自己的模板文件并控制传递给它们的参数,那么你如何操纵或者添加传递给页面和节点模板文件的变量呢?

注意 只有实现为模板文件的可主题化项目,才有变量的聚合和传递一说。如果可主题化项目采用主题函数的实现方式,那么就不需要向其传递变量了。

每次加载一个模板文件都需要调用一系列的预处理函数。这些函数负责聚集变量,以将其传递给合适的模板文件。 让我们继续使用面包屑作为我们的例子。首先,让我们修改sites/all/themes/custom/greyscale/breadcrumb.tpl.php文件,为面包屑分隔符使用一个名为$breadcrumb_delimiter的变量:

<?php if (!empty($breadcrumb)): ?>

<span class="breadcrumb">

<?php print implode(' '. $breadcrumb_delimiter .' ', $breadcrumb) ?>

</span>

<?php endif; ?>

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