这是一个如何覆盖Drupal 6中的可用项的问题。
根据“Pro Drupal Development”一书,我们可以通过两种方式覆盖可用物品:
例如,为了重新格式化面包屑,我可以:
但是在我的本地测试服务器上,第二种方法(即通过模板文件)无效!我看不到任何面包屑,而第一种方法工作正常。
知道怎么会发生这种情况?我需要配置Drupal的任何特殊设置吗?
谢谢!
我的自定义主题“灰度”:
网站\所有\主题\自定义\灰阶:
- breadcrumb.tpl.php
- greyscale.info
- node.tpl.php
- page.tpl.php
- style.css
- template.php
相关文件内容:
* template.php:
function phptemplate_preprocess_breadcrumb(&$variables) {
$variables['breadcrumb_delimiter'] = '#';
}
答案 0 :(得分:4)
主题函数设置为使用模板或一个函数来生成标记,它将永远不会使用两者,因为它没有意义。
对于使用模板的主题函数,必须在hook_theme
中定义时定义它。
模板+预处理功能和主题功能确实做同样的事情:产生标记。这取决于哪种方法最好使用的情况,这就是为什么我们有两个。关于模板的好处是,它允许用户更改标记,而不需要了解PHP或Drupal。
Drupal缓存主题中定义的所有模板和主题函数,当您创建新模板和主题函数时,需要清除缓存,这可以通过以下方式完成:
来回切换主题也会起作用,但实际上并不是理想的方法。
答案 1 :(得分:0)
我个人总是发现使用hook_breadcrumb()
更容易通过template.php更改面包屑function mytheme_breadcrumb($breadcrumb) {
$sep = ' > ';
if (count($breadcrumb) > 0) {
return implode($breadcrumb, $sep) . $sep;
}
else {
return t("Home");
}
}
您希望使用.tpl.php文件的任何特定原因?