Drupal 7中如何根据Taxonomy定制breadcrumb

同心慈善会的网站终于做到尾声,但是发现之前一直想绕过去的breadcrumb的定制最终还是绕不过去。

具体问题是这样的,我建立了一个view,接受一个taxonomy term ID参数作为CONTEXTUAL FILTERS列出这个taxonomy下所有的文章。我的问题是,怎么才能在breadcrumb那个位置显示出来这个的路径呢?

例如这个地址:http://ww1.ohch.org/page-news/15

breadcrumb上显示的内容并不是按照taxonomy来列的。目前的这个breadcrumb是我参考 http://hellodrupal.info/node/84 这个方法来做的,代码如下:

function ohch_breadcrumb($breadcrumb) {

if (!empty($breadcrumb)) {
//$breadcrumb[] = l(drupal_get_title(), $_REQUEST[‘q’]);

return ‘<div id=”crumbs”><p>’. implode(‘ › ‘, $breadcrumb).'<em>’.drupal_get_title().'</em>’.'</p></div>’;
}
}

function ohch_preprocess_page(&$variables, $hook){

$node = $variables[‘node’];

$tax = array();
$tax[] = ‘<a href=”‘.base_path().'”>’.t(‘首页’).'</a>’;
$taxItem = $node->field_tags[und][0][taxonomy_term];
$tax[] = ‘<a href=”‘.’taxonomy/term/’.$taxItem->tid.'”>’.t($taxItem->name).'</a> ‘;
$variables[‘breadcrumb’] = theme(‘breadcrumb’, $tax);// 调用breadcrumb theme
}

原因就是那个文章里面说的方法,特别是$terms = $node->taxonomy; 这个似乎在Drupal 7里面不work了。

感觉还是在这个里面的方法写的有问题,因为在通过我定义的viewi地址访问的时候,似乎$node是空的了。说明这不是一个node?

最后还是用 taxonomy_breadcrumb 解决了我的问题,这个模块本身对Drupal7的支持还是Alpha的,还是有各种各样的bug的。不过还好,我要求比较低,最终勉强着用它实现了我的要求。

 

19 Comments

Leave a Reply

XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>