更改Drupal中面包屑轨迹的显示根


Change Displayed Root of Breadcrumb Trail in Drupal

如何在某个点更改面包屑轨迹的显示根?

比方说我的面包屑绘制了太阳系的地图。我希望我显示的轨迹从太阳系开始,直到我到达美国,在这一点上,我希望USA是根。因此,对于其他行星/大陆/国家,我会有这样的轨迹:

太阳系>木星>大红色漩涡

太阳系>地球>澳大利亚>悉尼

太阳系>地球>北美>加拿大

但一旦我到达美国,面包屑轨迹就不会显示为…

太阳系>地球>北美>美国

我希望美国成为显示的根

美国

美国>俄亥俄州

美国>加利福尼亚>旧金山

任何人都知道我如何实现这一点,无论是Drupal模块、Drupal技术还是template.php文件中的代码?

以下是php模板中创建面包屑的代码:

function cph_main_breadcrumb($variables) {
   $breadcrumb = $variables['breadcrumb'];
   $youAreHere = drupal_get_title();
   $crumbs = ' ';
   if (!empty($breadcrumb)) {
      $crumbs = '<ul>';
      foreach($breadcrumb as $value) {
         $crumbs .= '<li>' .$value.'</li>';
      }
      $crumbs .= '<li>' . $youAreHere . '<li></ul>';
   }
   return $crumbs;
}
function MYTHEME_breadcrumb($variables) {
   $breadcrumb = $variables['breadcrumb'];
   //dpm($breadcrumb);
   $youAreHere = drupal_get_title();
   $crumbs = ' ';
   if (!empty($breadcrumb)) {
      $crumbs = '<ul>';
      foreach($breadcrumb as $value) {
        // Add an if statement to check current item
        if($value == '<a href="/MY_PATH_TO_THIS_ITEM">USA</a>') {
          // Reset the list
          $crumbs = '<ul>';
        }
        $crumbs .= '<li>' .$value.'</li>';
      }
      $crumbs .= '<li>' . $youAreHere . '<li></ul>';
   }
   return $crumbs;
}
  • 如果当前的breadcrumb值是"USA"的值,则重置breadcrump并重新启动它。

  • 如果您想查找USA dpm()的当前项目,请使用$breadcrumb查找。请注意,如果美国的链接稍后更改,您也必须在此处更改它。。。