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

Опубликовано admin - вт, 06/17/2014 - 17:17

Предисловие

То, что меня раньше всегда раздражало при построении хлебных крошек — это то, что модули есть только для отдельных частей сайта. Есть для материалов — Custom Breadcrumbs (хотя вроде во второй версии там сделан ряд доработок, но всё равно сомнительно), для панелей — Panel Breadcrumbs (кстати, работают не всегда корректно), Hansel — вообще сложно сказать для чего. Для хлебных крошек на статичных страницах модуля вообще не было до появления первой версии моего Path Breadcrumbs. И вот такой набор модулей кое-как справлялся с созданием навигационной линейки для сайта. Однако даже это работало для большинства страниц, но не для всех. Я уже молчу о разнице в интерфейсе и возможностях модулей (не всегда даже есть возможность сделать крошку текстом, а не ссылкой). В общем, мне это порядком надоело и я решил написать модуль, который будет справляться с любыми хлебными крошками для любых страниц. И надо сказать — это у меня получилось.

Описание

Я рад представить вам своё новое творение — Path Breadcrumbs 2. Это модуль, который умеет строить хлебные крошки для абсолютно любых страниц (как статичных, так и динамичных). Удобный интерфейс (частично слизан с page manager’a) позволяет быстро и красиво строить навигационную линейку по крошкам. В результате кропотливого труда создан модуль, который позволяет заменить все остальные для построения хлебных крошек.

Почему надо использовать именно этот модуль:

1. Можно добавлять статическую страницу и задать хлебные крошки только для неё.

2. Можно добавить динамическую страницу (например, node/%node). В этом случае в навигационных ссылках можно будет использовать токены для замены.

3. Модуль не привязан ни к нодам, ни к вьюсам, ни к панелям и т. д. (в отличие от других модулей для хлебных крошек). Всё, что ему необходимо — это URL, на котором будет выведены навигационная линейка.

4. Имеются правила показа хлебных крошек. Это значит, что для одной и той же страницы могут показываться разные хлебные крошки! Например, можно показать одну навигацинную линейку для анонимов, а другую — для остальных пользователей. Если же взять пример для материалов — то можно показывать хлебные крошки в зависимости от типа материала, его статуса, значений полей и многого другого. Ниже приведён скриншот, на котором частично указаны возможные правила показа:

path_breadcrumbs.png

5. Есть возможность отключить хлебные крошки для любой страницы и включить их позже.

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

7. Возможность указать хлебную крошку без ссылки (то есть просто текстовую).

8. Как уже упоминалось — удобный интерфейс.

9. Теперь все хлебные крошки хранятся в одном месте и действительно работают.

Установка модуля

Модуль зависит от Chaos Tools. Поэтому для установки моего модуля придётся поставить сначала этот. Далее всё как обычно — скачали модуль, разархивировали в /sites/all/modules, перешли на страницу /admin/modules и включили. Включать, кстати, надо два модуля: Path Breadcrumbs (ядро) и Path Breadcrumbs UI (интерфейс пользователя).

Настройка модуля

Тем, кто уже работал с модулем Page Manager интерфейс будет знакомым. Остальным же придётся совсем немного разобраться.

Для создания хлебной крошки перейдите на страницу /admin/structure/path_breadcrumbs и нажмите на Create path breadcrumbs:

path_breadcrumbs_1.png

Перед вами развернётся первый шаг создания хлебных крошек:

1_1.png

Здесь Path name — это любое название для навигационной линейки, которое будет отображаться в списке всех хлебных крошек. Path — путь, на котором будут выводиться хлебные крошки. На скриншоте я решил создать навигационную линейку для материалов.

Следующий шаг предложит вам выбрать для введённых заменяемых частей урла (например, %node) связь к сущностям сайта. Для этого напротив аргумента нажмите кнопку Change:

path_breadcrumbs_2.png

Вам откроется такое окно с выбором сущностей:

path_breadcrumbs_3_0.png

Выбираете нужную сущность (в нашем случае — Node: ID). Нажимаем далее. Может появиться окно с настройками сущности — просто выберите то, что необходимо для вашей ситуации (в большинстве случаев можно сразу нажать кнопку «Finish»).

Теперь сущность привязана к аргументу:

2_0.png

Следущий шаг — это выбор условий, при которых будет показана навигационная линейка. Для примера можно показать её только для материалов типа Article. В выпадающем списке выбираем тип материала и нажимаем кнопку ADD:

path_breadcrumbs_4.png

После добавления появится попап с выбором доступных типов материалов:

path_breadcrumbs_5.png

Отмечаем нужный тип материала и жмём Save. В форме видно, что мы добавили условие:

path_breadcrumbs_6.png

Условий, можно добавлять неограниченное количество. Чуть ниже расположена форма выбора логики проверки условий: все добавленные условия должны выполняться, или же хотя бы одно.

Последний шаг — составление хлебных крошек:

path_breadcrumbs_7.png

Translatable — флаг, обозначающий, будут ли заголовки хлебных крошек доступны для перевода.
Prepend Home link to the Breadcrumbs — флаг, отвечающий за добавление ссылки «Главная» в начале навигационной линейки.

Далее идёт таблица с хлебными крошками. Думаю, тут всё интуитивно понятно и не требует объяснений.
Нажимаем на кнопку сохранения.

Substitutions — Список токенов для автозамены.

Результат работы

А вот и результат создания навигационной линейки:

path_breadcrumbs_8.png

Дополнительно

Модуль позволяет делать неограниченное количество навигационных линеек для любых путей (даже для одинаковых). Поэтому при переборе подходящих вариантов для страницы предпочтение будет отдано варианту с наименьшим весом (чем выше вариант в списке — тем меньше вес):

path_breadcrumbs_9.png

Страница с модулем Path breadcrumbs. Пользуйтесь на здоровье!

UPDATE (09.06.2012)

Модуль научился делать ещё кое-что:

  • Появилась возможность импорта / экспорта.
  • Появилась возможность клонировать навигационную линейку.
  • Добавлена возможность скрыть хлебные крошки, если она содержит всего 1 элемент.
  • Добавлена поддержка микроформатов RDFa для хлебных крошек.
  • Теперь вы сами можете указать символ, который будет разделителем для хлебных крошек
  • Добавлен токен, который выводит заголовок текущей страницы.
  • Добавлены токены, который позвляют использовать значение аргументов из урла.
  • К крошкам добавлены классы 'odd', 'even', 'first', 'last' в зависимости от их позиции в линейке.
  • Поправлены стили для формы добавление крошек.

UPDATE (13.06.2012)

Один из наиболее частых вопросов — как сделать хлебные крошки для поля таксономии. На скриншоте пример для поля field_category (таксономия с иерархией):

path_breadcrumbs_0.png

А вот результат таких настроек:

path_breadcrumbs_10.png

Яндекс.Метрика