Как правильно "крошить хлеб" по всему сайту

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

Аватар пользователя VladSavitsky VladSavitsky 26 мая 2009 в 1:15

Хлебные крошкиХлебные крошки это отличный элемент навигации по сайту - на любой странице вы будете знать как далеко вы зашли вглубь сайта и где вы сейчас находитесь. По умолчанию в Drupal 6 он не настроен на 100%. Это мы и будем исправлять.

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

Первое документированное использование хлебных крошек на значимом сайте было на главной странице Yahoo.com. Техника была придумана в 1997 году Матфеем Ривард (Matthew Rivard).

Цепочка навигации в Drupal

Для вывода цепочки навигации в page.tpl.php текущей темы должен присутствовать код:


<?php print $breadcrumb?>

Хлебные крошки в Drupal 6

Возможность попасть в хлебные крошки имеют:

  • Страницы книги (Book) или страницы добавленные в подшивку.
  • Страницы подключенные к меню Навигация (Navigation)

Решение

Что нужно отображать в хлебных крошках?

  • Термины таксономии - не показывается
  • Меню - показывается только для меню Навигация
  • Подшивки (модуль Book) - уже показывается

Таким образом мы сможем показывать в хлебных крошках весь структурированный контент. Ноды не подшитые и не попавшие в меню будут показываться как привязанные к "Главной".

Настройка

  1. Ставим Menu Breadcrumb и настраиваем модуль - там всего 4 галочки. Я отключил показ ссылки "Главная", если нет других ссылок, потому что иначе вместо "Главное" выводился текст "Содержимое". К тому же нет смысла в этой ссылке на главной странице сайта.
  2. Ставим модуль Taxonomy Breadcrumb. Чтобы модули не конфликтовали, в настройках модуля нужно отключить обработку всех типов контента, а только оставить обработку хлебных крошек терминов таксономии. Для этого нужно выбрать:
    • Include + пустое поле
      ИЛИ
    • Exclude + перечислить все типы материалов через пробел (существующие типы указаны ниже формы)

    Если не запретить обработку нод модулем Taxonomy Breadcrumb, то вы не получите хлебные крошки для нод. По умолчанию в модуле не выбран ни один вариант - выберите любой.

Вот и всё! Может быть я что-то упустил?

Обзоры полезных модулей

Комментарии

Аватар пользователя edhel edhel 26 мая 2009 в 7:25

Не могу толком портировать node_breadcrumb на 6-ку, косяки с настройкой видимости блоков (т.к. подменяется путь в $_GET['q']) и счетчиком просмотров нод (из-за этого же).

А указанные выше модули не устраивают, т. к. они не активируют нужный пункт меню. Например: есть раздел "статьи" и подраздел "политика". Хочется чтобы при просмотре статей о политике не только показывался брэдкрамб главная»статьи»политика, но и было развернут и посвечен пункт меню "политика".

Аватар пользователя RISK RISK 26 мая 2009 в 8:26

Menu breadcrumb муторный модуль. Работает со стандартным Menu только. Причём сначала отключает использование линейки во всех меню кроме Navigation, говорит, что по умолчанию в Друпале линейка только в этом меню и используется и предлагает обратно включить линейку для других меню. Ссылки со спецзнаками в названии страницы покажет неправильно. Смысл только во включении названия документа в линейку, но это и в шаблоне просто сделать, вот Node breadcrumb — действительно круто, работает и с типами документов и с таксономией и с меню. Молюсь на edhel'а)

Аватар пользователя VladSavitsky VladSavitsky 26 мая 2009 в 13:32

Я бы не писал, если бы не работало - я локально гонял Menu breadcrumb.
Выводы:
Нормально работает с любыми меню (и Secondary, и Primary, и любое произвольное).
Использовал версию 6.x-1.1 на D6.12

А вот модуль Node breadcrumb я что-то проглядел... Спасибо.

Аватар пользователя VladSavitsky VladSavitsky 26 мая 2009 в 15:32

Почитал про модуль Node breadcrumb.
Если нужно подсвечивать активный пункт меню, то есть мощный модуль Context, который это тоже умеет. Лично мне это не было нужно - хотелось только заставить хлебные крошки работать...

Аватар пользователя RISK RISK 26 мая 2009 в 22:46

VladSavitsky: Я бы не писал, если бы не работало - я локально гонял Menu breadcrumb.

Я и не говорю что не работает, только его описание на английском странное.

Аватар пользователя Valeratal Valeratal 27 мая 2009 в 12:09

у меня также трабла, есть сделанные с помощью вьюсов виды. Каждый вид (у меня в голове) относится к группе (сделанную в OG)

Можно ли прописать, чтобы у нужных видов показывались крошки указываюищие на нужную группу.
Объяснил сумбурно. Вот пример
Страница группы адаптация персонала
у нее есть подраздел: методики по адаптации персонала

Получется, что для методик, одна крошка - "главная", хотя хотелось бы
"Главная - Адаптация персонала"

Аватар пользователя VladSavitsky VladSavitsky 28 мая 2009 в 16:46

Node Trail насколько я понял реализует одно из хитрых применений модуля Menu breadcrumb, а именно:
Если нужны крошки для ноды, а она не должна показываться в меню, то нужно снять галочку "Включено" для этого пункта меню (я это описывал в обзоре модуля у себя на сайте).

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

Menu Trails
Работает с OG для 6ки!!!
Я так понял мощный модуль - нужно поставить и посмотреть что он может. Чуть позже сделаю это.
Спасибо, andypost@drupal.org, за ссылки.

Аватар пользователя EllECTRONC EllECTRONC 30 мая 2009 в 22:40

Как раз подумывала как бы убрать крошки «с главной о Главной».. даже в поиск идти не пришлось — спасибо, Влад, то что нужно.

Аватар пользователя Razunter Razunter 31 мая 2009 в 2:47

Menu Trails отличный модуль... но он работает только с одним меню на выбор. Часто же нужно несколько меню одновременно.

Аватар пользователя Alex_R Alex_R 15 января 2010 в 2:36

Такая ситуация - primary links в шапке одноуровневое, в зависимости от выбора определенного пункта в левой колонке появляется блок с меню соответствующим данному пункту основного меню. PathAuto настроен, что путь до документа формируется: имя_сайта/имя_пункта_главного_меню/Имя_пункта_дочернего_меню/имя_документа. Все работает нормально. Пытался к такой структуре прикрутить все перечисленные модули, либо игнорируют пункты главного меню, либо дочерних, либо вообще не работают (Node breadcrumb). Либо я что то делаю не правильно, либо я что то делаю не правильно. Wink
Может кто подскажет в сторону какого модуля смотреть и как его правильно настроить для такой ситуации?

Аватар пользователя ddddd ddddd 10 февраля 2010 в 21:36

Спасибо помогло.Только вот незадача.У меня два пункта выводятся вьюсами и они не отображаются в крошках.Но то что у меня много таксономических меню и все они выводятся в крошках ето круто.Настройка очень простая в сравнении с другими модулями.

Аватар пользователя Erly Erly 11 июля 2010 в 15:18

Помоему если нужно только удалить ссылку "Главная" в "хлебных крошках", то проще всего в tempalte.php вписать:

 function phptemplate_breadcrumb($breadcrumb) {
  if (!empty($breadcrumb)) {
        unset($breadcrumb[0]);
    return '<div class="breadcrumb">'. implode(' » ', $breadcrumb) .'</div>' ;
 }
}

(просто обнулить превый элемен массива)

Аватар пользователя Erly Erly 24 июля 2010 в 1:12

"givchik" wrote:
Извините за глупый вопрос, а ка перенести крошки под статью?

ну просто пишите в файле page.tpl.php
<?php print $breadcrumb ?>

после
<?php print $content; ?>

Аватар пользователя chel chel 7 декабря 2010 в 1:08

а можно ли не используя book и подшивки и таксономию, показывать все дочерние пункты меню с помощью breadcrumb?