Блог для начинающих веб разработчиков. HTML, СSS, Jquery, Drupal и другое.

→ «Хлебные крошки» - Breadcrumbs в Drupal 7.

Опубликовано: 10 июня 2012

В этой небольшой статье мы рассмотрим, как настроить навигационную цепочку типа breadcrumbs или «хлебные крошки» в Drupal 7.

Такая навигация может быть очень полезна для посетителей, на разветвлённом сайте, с многоуровневой структурой. Выглядят «хлебные крошки» обычно как набор ссылок расположенных в одну строку. Первая ссылка ведёт на главную страницу, а остальные выстроены в виде пути до текущей страницы.

Например:

Главная » Раздел » Подраздел » Заголовок страницы

Последний элемент этой строки обычно не является ссылкой, а представляет собой простой текст – заголовок страницы, на которой посетитель находится в данный момент.

Разделы или категории в Drupal лучше всего сделать на основе таксономии. Можно создать словарь и термины в нём, затем настроить создание новых материалов так, чтобы каждой ноде можно было присвоить только один термин (в отличие от тегов, которые тоже делаются с помощью таксономии Drupal). Термины могут быть и вложенными, именно так можно реализовать нужное количество подразделов.

Чтобы автоматически вывести весь путь по терминам таксономии в виде навигационной цепочки, в Drupal 7, можно использовать модуль Taxonomy breadcrumb. После его установки, вместо стандартных «хлебных крошек» движка появятся другие – основанные на таксономии. Пример их вида в теме Batrik показан ниже.

На этом тестовом сайте, допустим, мы продаём радиодетали. У нас есть словарь - «радиодетали», в нём термин «конденсаторы», а уже в него вложен ещё один термин «Электролитические». Вид дерева таксономии так же показан на скриншоте ниже.

Рассмотрим настройки Taxonomy Breadcrumb. В них можно попасть кликнув: Конфигурация > Taxonomy Breadcrumb Settings  (admin/config/user-interface/taxonomy-breadcrumb).

На самом деле их не так много:

В строке «Home breadcrumb text», можно указать текст самой первой ссылки, которая указывает на главную страницу. Например «Домой», «Начало», или «Главная».

Следующие два флажка позволяют модулю вставлять в цепочку ссылку на термин, которому непосредственно принадлежит нода, если галочку убрать, то будет показываться только родительские термины.

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

В расширенных настройках, можно отключить или наоборот подключить «хлебные крошки» на определённых типах материалов. По умолчанию они показываются на всех типах.

Понятно, но что будет показываться, если посетитель кликнет на ссылку термина? Очевидно, список страниц, которые к этому термину относятся. Но показывать их Drupal будет в виде списка анонсов, то есть как в блоге. Но часто нужна более сложная страница термина, например, в виде таблицы, с возможностью сортировки, поиска или фильтрации (для списка товаров в интернет-магазине).

Создать такую страницу можно используя систему представлений модуля Views, подробно об этом рассказывать сейчас не буду, есть отличный видеокурс по этой теме.

Стандартный вывод термина таксономии в Drupal можно заменить на представление с помощью модуля Taxonomy display.

После установки этого модуля нужно пройти в настройки словаря таксономии на вкладку «Управление отображением», создать расширенное отображение для «страницы термина» (как показано на изображении ниже). И тогда на вкладке этого отображения можно настроить, как именно будут отображаться страницы терминов этого словаря. Подробнее о замене страницы термина на представление views можно посмотреть в этом видео, там есть много нюансов.

Модуль Taxonomy breadcrumb достаточно прост, и может построить хлебные крошки только на основе термином таксономии. Для построения навигационной цепочки на основе каких-либо других свойств материалов, отлично подходит другой модуль Custom Breadcrumbs.

Он позволяет настроить свою цепочку навигации для каждого типа материала. А самое главное – этот модуль может построить навигацию не только по таксономии, а по любым критериям. Вы можете использовать его совместно с модулем Token, и вставлять в цепочку всевозможные подстановки.

Рассмотрим настройку хлебных крошек с помощью Custom Breadcrumbs и Token такого вида:

Главная > Имя автора > Дата создания статьи > Заголовок статьи

«Имя автора» будет ссылкой на страницу профиля автора статьи, а всё остальное (кроме ссылки на главную) - простым текстом.

Откроем страницу «структура > Навигационная линейка» (admin/structure/custom_breadcrumbs) и добавим новое правило. Откроется страница как на скриншоте ниже.

Кроме раскрывающегося списка, где выбирается тип материала, для которого мы создаём правило, мы видим три текстовых поля для ввода, а так же подсказки по заполнению подстановок и некие «особые идентификаторы».

Первое поле «Видимость хлебных крошек» может содержать php код. Хлебные крошки будут показываться, только если этот код возвращает 1. Если поле оставить пустым, то breadcrumbs будут видны всегда.

Второе и третье поля «Заголовки» и «Пути» предназначены для ввода элементов навигационной линейки.

Каждая новая ссылка вводится с новой строки. Понятно, что ссылки будут иметь текст из верхнего поля, а ссылаться будут на url из нижнего. Если вместо ссылки мы хотим получить просто текст, то вводим на нужной строчке <none>.

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

Найдя нужные токены, я заполнил настройки таким образом:

Заголовки:

[node:author]
[node:created:short]
[node:title]

Пути:

[node:author:url]
<none>
<none>

Ссылка на главную вставляется сама, здесь её вставлять не нужно.

Что получилось видно на скриншоте ниже:

Напоследок, отмечу, что отсутствие хлебных крошек может быть связано с проблемами в теме оформления, возможно тема не предусматривает вывода Breadcrumbs вообще. Обычно, хлебные крошки выводятся в файле темы page.tpl.php, кодом вида:

<?php print $breadcrumb; ?>

На сегодня всё, надеюсь, этот пост был вам полезен, оставляйте комментарии, и приходите ещё!

Поделиться:
Комментарии

Здравствуйте! Спасибо за пост! Но есть вопросы - все сделала, как здесь описано, установила оба модуля, но "крошки" так и не появились. Файл page.tpl.php содержит ту строчку, которую вы привели. Что не так?
И еще вопрос - в модуле custom breadcrumbs есть также и разделы таксономии. Тогда нужен ли модуль taxonomy breadcrumbs?

вт, 2012-08-07 21:14

Марина, добрый день. Я бы советовал включить только один модуль, который вас устраивает.

А крошки стандартные друпаловские были? Модуль ведь просто заменяет их своими - расширенными. Если не было, то нужно посмотреть в настройках темы, или ещё где-то, протестировать на стандартном Bartik'е.

В общем то да, custom breadcrumbs имеет более расширенные настройки, и он может заменить taxonomy breadcrumbs, однако я не знаю нормально ли он будет работать при многоуровневой таксономии.

Faraday
вс, 2012-08-12 18:50

А не подскажите какой модуль мне использовать? У меня материал принадлежит двум терминам таксаномии, одновременно находится в двух каталогах, и в крошках появляются два эти термина, а я хочу чтобы отображался тот путь по которому я к этому товару пришёл. Т.е. выводить для одной и той же странице разные крошки, в зависимости откуда на нее пришел? Справится ли с этой задачей Taxonomy breadcrumb?

Виталий
пн, 2013-05-06 23:08

Не знаю,сколько не бился,смотрел и читал кучу материалов ,а у себя на сайте этот модуль так и не смог настроить.

чт, 2015-06-18 16:33

В настоящий момент для Друпал 7 очень удобно для настройки хлебных крошек использовать модуль Path Breadcrumbs https://www.drupal.org/project/path_breadcrumbs

ср, 2017-08-23 01:22
Комментировать