Таксономия панировочных сухарей

8

Я использую основной модуль таксономии для тегов блога, но когда на странице тега может появиться только «хлебная крошка» как «Домой», тогда как в идеале мне бы хотелось, чтобы это было «Home> Blog> # Tag #». Я использую настраиваемый модуль хлебных крошек для установки хлебных крошек для типов контента (<- не допускает таксономические хлебные крошки) и пытался использовать таксономический модуль хлебных крошек без какого-либо результата, отчасти из-за того, что это не особо настраиваемый модуль. Страницы тегов блога (перечисляющие все узлы под термином), по-видимому, генерируются из основного модуля таксономии, а не из представлений, поэтому я не могу решить проблему в представлениях.

Если бы кто-нибудь мог указать мне правильное направление, я был бы благодарен :)

Storsey
источник

Ответы:

3

Это звучит как то, что вы можете сделать относительно легко drupal_set_breadcrumbв пользовательском модуле.

Скорее всего, это то, что использует пользовательский модуль Breadcrumb. Вам нужно будет изменить крошки после пользовательского модуля крошки, но до того, как они будут обработаны. Это может быть причиной проблем с модулем таксономии.

Вы можете использовать его, если вы измените его вес в системной таблице, в зависимости от того, как два модуля изменяют хлебные крошки. Я думаю, что это сделано сhook_init

googletorp
источник
9

Это может быть достигнуто путем переопределения theme_breadcrumb () в template.php вашей темы. Пример реализации:

function mytheme_breadcrumb($breadcrumb) {

  if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
    $breadcrumb = array();
    $breadcrumb[] = l(t('Home'), '<front>');
    $breadcrumb[] = l(t('Blog'), 'path/to/blog');

    $tid = arg(2);

    if ($term = taxonomy_term_load($tid)) {
      $uri = entity_uri('taxonomy_term', $term);
      $breadcrumb[] = l($term->name, $uri['path'], $uri['options']);
    }
  }

  // resume normal operation
  if (!empty($breadcrumb)) {
  // uncomment the next line to enable current page in the breadcrumb trail
    $title = drupal_get_title();
    if (!empty($title)) {
      $breadcrumb[] = $title;
      unset($title);
    }

    return '<div class="breadcrumb">'. implode(' &gt; ', $breadcrumb) . '</div>';
  }
}
zerolab
источник
4

Для этого есть модуль (а не один):

Вероятно, выбрал бы пользовательские панировочные сухари из-за его гибкости и способности создавать хлебные крошки для остальной части вашего сайта.

WIIFM
источник
Я использую custom_breadcrumbs, но не могу настроить хлебные крошки для терминов таксономии в зависимости от типа контента.
KenAesthetic
2

У меня была такая же проблема с таксономиями. Я наткнулся на модуль «Легкие хлебные крошки», который не учитывает конструкцию URL для генерации хлебных крошек (полагается на Pathauto и Чистые URL).

Например:

example.com/style/mediterranean

Главная> Стиль> Средиземноморье

Я понимаю, что во многих случаях это не поможет, но если ваши хлебные крошки имитируют структуру вашего URL, то Easy Breadcrumbs должны решить ваши проблемы.

Woop
источник
Вот ссылка: drupal.org/project/easy_breadcrumb
пользователь
1

Я использовал отображение таксономии и обнаружил, что drupal_set_breadcrumb()происходит сбой, hook_init()а переопределения хлебной крошки не выполняются в других модулях.

Посмотрите эту проблему, чтобы найти исправление и предлагаемое решение для пользователей этого модуля: обработка хлебных крошек делает невозможным изменение крошек для условий без родителей

tmsimont
источник
1

С крошками 7.x-2.x:

  1. Зайдите на страницу admin / structure / crumbs и включите подстановочный знак плагина таксономии. * Или еще что-то из семейства плагинов таксономии. (он может быть уже включен, но посмотрите, чтобы быть уверенным)

  2. Перейдите admin/structure/crumbs/entity-parent/taxonomy-termи установите «блог» в качестве родительского пути для выбранного словаря.

  3. Посетите admin / structure / crumbs, убедитесь, что включен crumbs.entityParent. * (Или что-то более конкретное).

С крошками 7.x-1.x:

  1. Зайдите на страницу admin / structure / crumbs и включите подстановочный знак плагина таксономии. * Или еще что-то из семейства плагинов таксономии. (он может быть уже включен, но посмотрите, чтобы быть уверенным)

  2. Напишите собственный модуль с плагином Crumbs (*), который делает «блог» родительским путем для таксономии / term /% taxonomy_term.

  3. Зайдите на страницу admin / structure / crumbs, включите ваш новый плагин и присвойте ему приоритет более слабый (далее вниз), чем таксономия. * Или taxonomy.termParent. *.

(*) Написание плагина: http://drupal.org/node/1398876
Пример может быть немного излишним для этой цели, я надеюсь, вы сможете найти свой путь.

Дон Кихот
источник
В ветке Crumbs 7.x-2.x вместо пользовательского плагина на шаге 2 вы можете указать шаблон токена, чтобы установить «блог» в качестве родительского пути для страниц терминов таксономии.
Donquixote