Неправильное отображение Хлебных крошек

Главные вкладки

Аватар пользователя ShamAnton ShamAnton 13 сентября 2013 в 11:16

Вывод крошек на втором уровне терминов в каталоге (в подкатегории) получается в стиле (находимся в "Крышки цепи"): Главная / Двигатель / Крышки цепи / Двигатель
В Ноде все хорошо, красивый и правильный путь (хотя node_breadcrumb не включен).
Перелопатил весь сайт, нашел все drupal_set_breadcrumb, ни одно не помогает
Если изменяю в модуле menu_bradcrumb:

<?php  $breadcrumb drupal_get_breadcrumb();

  if (

variable_get('menu_breadcrumb_append_node_title'0) == 1) {
    
$node_title filter_xss(menu_get_active_title(), array());
    if (
variable_get('menu_breadcrumb_append_node_url'0) == 1) {
      
$breadcrumb[] = $is_front l(t('Home'), '<front>') : l($node_title$_GET['q'], array('html' => TRUE,));
    }
    else {
      
$breadcrumb[] = $is_front t('Home') : $node_title;
    }
  }

  if (

count($breadcrumb) == && variable_get('menu_breadcrumb_hide_on_single_item'0)) {
    
$breadcrumb = array();
  }

  

$breadcrumb[]=1//вот эту строчку добавляю

  

drupal_set_breadcrumb($breadcrumb);
}
?>

То в итоге получаю путь: Главная / Двигатель / Крышки цепи / 1 / Двигатель
в итоге прихожу к мнению, что чоо-то после этого модуля ещё дописывает хлебные крошки.

Какие модули стандартные (или общеиспользуемые) могут переписывать их? Или где настроить чтоб модуль был последним в обработке хлебных крошек?

И ещё: если мы находимся в категории "Двигатели" (родительской категории), то хлебные крошки отображаются хорошо

Комментарии

Аватар пользователя ShamAnton ShamAnton 13 сентября 2013 в 11:50

$breadcrumb[]=1; //вот эту строчку добавляю - это всего лишь для определения где модуль заканчивает формирование бредкрампа (а сам код - из модуля menu_breadcrumb)
Не понимаю где он может дальше добавлять к хлебным крошкам вот этот самый "двигатель". Перерыл все что было связано с drupal_set_breadcrumb - поиском эклипса по строке. Но так и не понял где он его меняет дальше (в ядре когда обрабатывает drupal_get_breadcrumb разве что - вызывается каждый раз при set-е)

Включен для крошек menu_breadcrumb, он настроен на меню собранное с помошью taxonomy_menu. Многоуровневая иерархия. Вот на 1 уровне (родительском все замечательно) а на детках - плохо.

Аватар пользователя ShamAnton ShamAnton 13 сентября 2013 в 13:31

Путем жестких извращений и правки файла template, по средством искусственного введения в модуле Меню бреадкрамп нового элмента "||", а затем перебора всей переменной breadcrumb вплоть до этого элемента и вывода собранного нового бредкрампа - достиг нужных успехов. Но это неправильный подход, извращенский... Задача считаю не решена.
В template теперь:
function mytheme_breadcrumb($variables) {
$sep = ' > ';
if (count($variables['breadcrumb']) > 0) {
$last = count($variables['breadcrumb'])-1;
for($i=0;$i<=$last;$i++){
if($variables['breadcrumb'][$i]!='||'){
$retvar[] = $variables['breadcrumb'][$i];
}
else {
break;
}
}
$last = count($retvar)-1;
$retvar[$last]="".$retvar[$last]."";
$retvar = implode($sep, $retvar);

return $retvar;
}
else {
return t("Главная");
}
}

а в модуле menu_breadcrumb добавлено:

$breadcrumb[]='||';
drupal_set_breadcrumb($breadcrumb);

В итоге все заработало - но до ужаса неправильно и искусственно.