对于 #2,您可以使用自定义面包屑。我不确定版本 6.x-1.x,但我可以确认 6.x-2.0 工作正常。您需要做的是:
- 启用两个子模块Custom Breadcrumbs for Taxonomy和Custom Breadcrumbs for Panels
- 在自定义面包屑配置页面进行设置
- 使面板的自定义面包屑的权重最高,在配置页面的底部(以覆盖不与面板本身相处的分类的自定义面包屑)
但是,自定义面包屑是在面板之后构建的,因此您实际上无法在面板中使用它。但是您可以在面板外部的 page.tpl.php 中打印它。
编辑:
似乎面板的自定义面包屑与它无关:)
它只是在配置页面上显示了一个非常误导性的文本(“为面板使用分类面包屑”)。经过更多研究,结果证明它在panels
权重较小的情况下有效custom_breadcrumbs_taxonomy
(参见system
数据库中的表格)。
如果你真的想在面板中显示面包屑,你可以使用这个(hack-ish)方法:
- 配置分类面包屑
- 确保权重在系统表中是好的,如解释的那样
- 在页面面板中添加面包屑
- 添加一个预处理函数,将面板中的面包屑替换为由 custom_breadcrumbs_taxonomy 构建的最终面包屑,例如:
(注意:我的面板是 page 类型的,它在content
section 中)
function abn_preprocess_page(&$vars) {
$old_breadcrumb = strstr( strstr($vars['content'],'<div class="breadcrumb">'), '</div>', true);
if ($old_breadcrumb) {
$old_breadcrumb .= '</div>';
$vars['content'] = str_replace($old_breadcrumb, $vars['breadcrumb'], $vars['content']);
}
}