【发布时间】:2010-10-29 09:49:14
【问题描述】:
这是一个如何在 Drupal 6 中覆盖主题项目的问题。
根据“Pro Drupal Development”一书,我们可以通过两种方式覆盖主题项:
- 通过主题函数覆盖
- 通过模板文件覆盖
例如,为了重新格式化面包屑,我可以:
- 通过function theme_breadcrumb($breadcrumb)
- 通过 breadcrumb.tpl.php
但是在我的本地测试服务器上,第二种方法(即通过模板文件)不起作用!我根本看不到面包屑,而第一种方法效果很好。
知道怎么会这样吗?我需要什么特殊设置来配置我的 Drupal?
谢谢!
我的自定义主题“灰度”:
网站\所有\主题\自定义\灰度:
- 面包屑.tpl.php
- 灰度信息
- node.tpl.php
- page.tpl.php
- 样式.css
- 模板.php
相关文件内容:
* 模板.php:
function phptemplate_preprocess_breadcrumb(&$variables) {
$variables['breadcrumb_delimiter'] = '#';
}
- 面包屑.tpl.php:
【问题讨论】:
-
您的其他模板文件是否按预期工作?
-
也许我的问题表述得不太好。我真正的问题是:我在那里有一个模板文件“breadcrumb.tpl.php”,但 Drupal 并没有意识到这一点,尽管我多次单击“管理 -> 网站建设 -> 模块”(根据“Pro Drupal Dev”这将刷新主题注册表,但事实并非如此。
-
我发现了问题:我将主题更改为另一个主题,然后切换回我的自定义主题,现在 Drupal 看到了我的“breadcrumb.tpl.php”。似乎这是刷新主题注册表的正确方法。