SlideShare a Scribd company logo
1 of 22
Все крошки в одном докладе!
Модули Drupal для построения хлебных крошек.
Path Breadcrumbs.
Катя Маршалкина
@kalabro
Работаю в licel.ru
marshalkina@licel.ru

Drupal Meetup (Drupal Cafe) #5
Крошки?

Drupal Meetup (Drupal Cafe) #5
Крошки?

Drupal Meetup (Drupal Cafe) #5
Крошки?

CENSORED
Drupal Meetup (Drupal Cafe) #5
Крошки!
• Хлебные крошки
• Навигационная цепочка

Фильмы
Электроника
Автомобили

Drupal Meetup (Drupal Cafe) #5

• Дублирующая навигация
• Градусник
Зачем?
• Для удобства пользователей
(Отказы ↓, Время на сайте ↑, $ ↑)
• И для SEO

Drupal Meetup (Drupal Cafe) #5
Как?
• Простое API (слишком)
drupal_get_breadcrumb();
drupal_set_breadcrumb(array $breadcrumbs);

Drupal Meetup (Drupal Cafe) #5
Comparison of Breadcrumb Customizing modules
https://drupal.org/node/533448

Не многовато ли?

Drupal Meetup (Drupal Cafe) #5
Некоторые модули для построения
хлебных крошек
•
•
•
•
•
•

Custom Breadcrumbs
Hansel
Panels Breadcrumbs
Menu Position
Breadcrumbs by path / Drupal 8
Path Breadcrumbs

Drupal Meetup (Drupal Cafe) #5
Custom Breadcrumbs
• Набор предустановленных вариантов для крошек.
• Для каждого варианта свои настройки.
-

Дружественный (нода, термин, всё понятно)
Широкое покрытие разных случаев
Есть своё API
~50К установок

Drupal Meetup (Drupal Cafe) #5
Custom Breadcrumbs
- Не достаточно гибкий.
- 100500 галочек в настройках как
попытка гибкости.
- PHP eval is evil!
- Нет экспорта / импорта
- Нет поддержки SEO
- Кастомное API, которое надо
изучать

Drupal Meetup (Drupal Cafe) #5
Hansel

- Набор предустановленных
вариантов (ноды, форумы, OG, …)
- Есть экспорт
- Fun!
- Хитрая кастомная реализация.
- Для среднего пользователя — тёмный лес, для
продвинутого — недоумение.
- Последний релиз от 2011-Dec-08

Drupal Meetup (Drupal Cafe) #5
Menu Position
- Принцип «подцепить
что-либо в меню»
реализован отлично.
- Меню и крошки
синхронизированы.
- Прост в
использовании.

Drupal Meetup (Drupal Cafe) #5

- Для простых сайтов
- Мало настроек вывода крошек
Drupal 8
• Крошки не на основе меню, а на основе
пути, как в Breadcrumbs by path.
Например,
есть View по пути fruites.
Есть термин таксономии с алиасом fruites/apples.
И есть нода с алиасом fruites/apples/antonovka.
-> http://example.com/fruites/apples/antonovka:

Magic by PathBasedBreadcrumbBuilder.
А ещё есть BookBreadcrumbBuilder, TermBreadcrumbBuilder и т.д.
Drupal Meetup (Drupal Cafe) #5
Path Breadcrumbs

Старт:
Апрель 2012
Автор:
@Spleshka
Установок:
> 5 000
Текущая версия:
7.x-3.0-beta6

Drupal Meetup (Drupal Cafe) #5
Path Breadcrumbs
• Любой путь, любая страница
• Контексты Ctools из пути (Arguments)
• Дополнительные условия отображения (Selection Rules based на
основе Ctools Access)
• Все токены из всех контекстов (на основе Entity Token)
• Microdata / Rich snippets (SEO)
• Экспорт / Features
• Многоязычность
• Ctools API + PB API
• Кеширование
•

Всякие плюшки (Home link, delimiter, truncate/transliterate)

Drupal Meetup (Drupal Cafe) #5
Path Breadcrumbs
- Сложный для не-разработчиков :(
- Какие пути? Какие контексты? Вы о чём вообще?

Давайте попробуем исправить ситуацию с помощью
демо.

+
Drupal Meetup (Drupal Cafe) #5
Path Breadcrumbs. Под капотом.
On Page Alter
PB Core
current_path()

Cacheable

Search I
(Pattern)
Search ||
(Path, Rules)

Не найдено
Ничего не
делать.

Не найдено

найдено
Построение навигационной
цепочки
drupal_set_breadcrumb()
Drupal Meetup (Drupal Cafe) #5
Path Breadcrumbs. Планы.
• Добавить необязательные контексты, как у Page
Manager: /my_view/%arg/!optional_arg
• Advanced Forum / Book
• Relationships (Связи, как в Ctool Access Rulesets)
• Подсказка системного пути при попытке ввода алиаса
• Багфиксы
• Документация / Популяризация
• Тесты, тесты, тесты!
• Drupal 8?
Drupal Meetup (Drupal Cafe) #5
Ссылки
•
•
•
•

https://drupal.org/project/path_breadcrumbs
Rich snippets – Breadcrumbs
https://drupal.org/node/533448
https://drupal.org/node/2098323

Drupal Meetup (Drupal Cafe) #5
Спасибо!
Катя Маршалкина
@kalabro
marshalkina@licel.ru

Drupal Meetup (Drupal Cafe) #5

More Related Content

More from DrupalSPB

Проблематика взаимодействия между исполнителем и заказчиком
Проблематика взаимодействия между исполнителем и заказчикомПроблематика взаимодействия между исполнителем и заказчиком
Проблематика взаимодействия между исполнителем и заказчикомDrupalSPB
 
Сервис емейл рассылок на Drupal 7
Сервис емейл рассылок на Drupal 7Сервис емейл рассылок на Drupal 7
Сервис емейл рассылок на Drupal 7DrupalSPB
 
Drupal 8 и хостинг
Drupal 8 и хостингDrupal 8 и хостинг
Drupal 8 и хостингDrupalSPB
 
Никита Ремизов - Введение в разработку ТЗ
Никита Ремизов - Введение в разработку ТЗНикита Ремизов - Введение в разработку ТЗ
Никита Ремизов - Введение в разработку ТЗDrupalSPB
 
Василий Устинов - Drupal + Drush
Василий Устинов - Drupal + DrushВасилий Устинов - Drupal + Drush
Василий Устинов - Drupal + DrushDrupalSPB
 
Олег Сосорев - Эффективное формирование и расширение архитектуры ПО
Олег Сосорев - Эффективное формирование и расширение архитектуры ПООлег Сосорев - Эффективное формирование и расширение архитектуры ПО
Олег Сосорев - Эффективное формирование и расширение архитектуры ПОDrupalSPB
 
Martin Mayer - My fellow developers, ask not only what your Drupal can do for...
Martin Mayer - My fellow developers, ask not only what your Drupal can do for...Martin Mayer - My fellow developers, ask not only what your Drupal can do for...
Martin Mayer - My fellow developers, ask not only what your Drupal can do for...DrupalSPB
 
Андрей Юртаев - Improve theming with (Twitter) Bootstrap
Андрей Юртаев - Improve theming with (Twitter) BootstrapАндрей Юртаев - Improve theming with (Twitter) Bootstrap
Андрей Юртаев - Improve theming with (Twitter) BootstrapDrupalSPB
 
Никита Ремизов - Случай использования Drupal как ERP системы
Никита Ремизов - Случай использования Drupal как ERP системыНикита Ремизов - Случай использования Drupal как ERP системы
Никита Ремизов - Случай использования Drupal как ERP системыDrupalSPB
 
Павел Прищепа - Drupal хостинг полного цикла
Павел Прищепа - Drupal хостинг полного циклаПавел Прищепа - Drupal хостинг полного цикла
Павел Прищепа - Drupal хостинг полного циклаDrupalSPB
 
Чингис Санданов - Drupal как решение для госсектора
Чингис Санданов - Drupal как решение для госсектораЧингис Санданов - Drupal как решение для госсектора
Чингис Санданов - Drupal как решение для госсектораDrupalSPB
 
Алексей Колосов - Drupal для хостинга
Алексей Колосов - Drupal для хостингаАлексей Колосов - Drupal для хостинга
Алексей Колосов - Drupal для хостингаDrupalSPB
 
Развитие идеи Проекта Мечты
Развитие идеи Проекта МечтыРазвитие идеи Проекта Мечты
Развитие идеи Проекта МечтыDrupalSPB
 
Проект мечты: Тиражирование, внедрение и поддержка готовых решений - типовых ...
Проект мечты: Тиражирование, внедрение и поддержка готовых решений - типовых ...Проект мечты: Тиражирование, внедрение и поддержка готовых решений - типовых ...
Проект мечты: Тиражирование, внедрение и поддержка готовых решений - типовых ...DrupalSPB
 
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihil
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihilDrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihil
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihilDrupalSPB
 
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalSPB
 
DrupalCafe #1: Александр Мальков - Статистика ответов из Простого опроса
DrupalCafe #1: Александр Мальков - Статистика ответов из Простого опросаDrupalCafe #1: Александр Мальков - Статистика ответов из Простого опроса
DrupalCafe #1: Александр Мальков - Статистика ответов из Простого опросаDrupalSPB
 

More from DrupalSPB (17)

Проблематика взаимодействия между исполнителем и заказчиком
Проблематика взаимодействия между исполнителем и заказчикомПроблематика взаимодействия между исполнителем и заказчиком
Проблематика взаимодействия между исполнителем и заказчиком
 
Сервис емейл рассылок на Drupal 7
Сервис емейл рассылок на Drupal 7Сервис емейл рассылок на Drupal 7
Сервис емейл рассылок на Drupal 7
 
Drupal 8 и хостинг
Drupal 8 и хостингDrupal 8 и хостинг
Drupal 8 и хостинг
 
Никита Ремизов - Введение в разработку ТЗ
Никита Ремизов - Введение в разработку ТЗНикита Ремизов - Введение в разработку ТЗ
Никита Ремизов - Введение в разработку ТЗ
 
Василий Устинов - Drupal + Drush
Василий Устинов - Drupal + DrushВасилий Устинов - Drupal + Drush
Василий Устинов - Drupal + Drush
 
Олег Сосорев - Эффективное формирование и расширение архитектуры ПО
Олег Сосорев - Эффективное формирование и расширение архитектуры ПООлег Сосорев - Эффективное формирование и расширение архитектуры ПО
Олег Сосорев - Эффективное формирование и расширение архитектуры ПО
 
Martin Mayer - My fellow developers, ask not only what your Drupal can do for...
Martin Mayer - My fellow developers, ask not only what your Drupal can do for...Martin Mayer - My fellow developers, ask not only what your Drupal can do for...
Martin Mayer - My fellow developers, ask not only what your Drupal can do for...
 
Андрей Юртаев - Improve theming with (Twitter) Bootstrap
Андрей Юртаев - Improve theming with (Twitter) BootstrapАндрей Юртаев - Improve theming with (Twitter) Bootstrap
Андрей Юртаев - Improve theming with (Twitter) Bootstrap
 
Никита Ремизов - Случай использования Drupal как ERP системы
Никита Ремизов - Случай использования Drupal как ERP системыНикита Ремизов - Случай использования Drupal как ERP системы
Никита Ремизов - Случай использования Drupal как ERP системы
 
Павел Прищепа - Drupal хостинг полного цикла
Павел Прищепа - Drupal хостинг полного циклаПавел Прищепа - Drupal хостинг полного цикла
Павел Прищепа - Drupal хостинг полного цикла
 
Чингис Санданов - Drupal как решение для госсектора
Чингис Санданов - Drupal как решение для госсектораЧингис Санданов - Drupal как решение для госсектора
Чингис Санданов - Drupal как решение для госсектора
 
Алексей Колосов - Drupal для хостинга
Алексей Колосов - Drupal для хостингаАлексей Колосов - Drupal для хостинга
Алексей Колосов - Drupal для хостинга
 
Развитие идеи Проекта Мечты
Развитие идеи Проекта МечтыРазвитие идеи Проекта Мечты
Развитие идеи Проекта Мечты
 
Проект мечты: Тиражирование, внедрение и поддержка готовых решений - типовых ...
Проект мечты: Тиражирование, внедрение и поддержка готовых решений - типовых ...Проект мечты: Тиражирование, внедрение и поддержка готовых решений - типовых ...
Проект мечты: Тиражирование, внедрение и поддержка готовых решений - типовых ...
 
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihil
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihilDrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihil
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihil
 
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
 
DrupalCafe #1: Александр Мальков - Статистика ответов из Простого опроса
DrupalCafe #1: Александр Мальков - Статистика ответов из Простого опросаDrupalCafe #1: Александр Мальков - Статистика ответов из Простого опроса
DrupalCafe #1: Александр Мальков - Статистика ответов из Простого опроса
 

Модули Drupal для построения хлебных крошек. Path Breadcrumbs.

  • 1. Все крошки в одном докладе! Модули Drupal для построения хлебных крошек. Path Breadcrumbs. Катя Маршалкина @kalabro Работаю в licel.ru marshalkina@licel.ru Drupal Meetup (Drupal Cafe) #5
  • 5. Крошки! • Хлебные крошки • Навигационная цепочка Фильмы Электроника Автомобили Drupal Meetup (Drupal Cafe) #5 • Дублирующая навигация • Градусник
  • 6. Зачем? • Для удобства пользователей (Отказы ↓, Время на сайте ↑, $ ↑) • И для SEO Drupal Meetup (Drupal Cafe) #5
  • 7. Как? • Простое API (слишком) drupal_get_breadcrumb(); drupal_set_breadcrumb(array $breadcrumbs); Drupal Meetup (Drupal Cafe) #5
  • 8.
  • 9. Comparison of Breadcrumb Customizing modules https://drupal.org/node/533448 Не многовато ли? Drupal Meetup (Drupal Cafe) #5
  • 10. Некоторые модули для построения хлебных крошек • • • • • • Custom Breadcrumbs Hansel Panels Breadcrumbs Menu Position Breadcrumbs by path / Drupal 8 Path Breadcrumbs Drupal Meetup (Drupal Cafe) #5
  • 11. Custom Breadcrumbs • Набор предустановленных вариантов для крошек. • Для каждого варианта свои настройки. - Дружественный (нода, термин, всё понятно) Широкое покрытие разных случаев Есть своё API ~50К установок Drupal Meetup (Drupal Cafe) #5
  • 12. Custom Breadcrumbs - Не достаточно гибкий. - 100500 галочек в настройках как попытка гибкости. - PHP eval is evil! - Нет экспорта / импорта - Нет поддержки SEO - Кастомное API, которое надо изучать Drupal Meetup (Drupal Cafe) #5
  • 13. Hansel - Набор предустановленных вариантов (ноды, форумы, OG, …) - Есть экспорт - Fun! - Хитрая кастомная реализация. - Для среднего пользователя — тёмный лес, для продвинутого — недоумение. - Последний релиз от 2011-Dec-08 Drupal Meetup (Drupal Cafe) #5
  • 14. Menu Position - Принцип «подцепить что-либо в меню» реализован отлично. - Меню и крошки синхронизированы. - Прост в использовании. Drupal Meetup (Drupal Cafe) #5 - Для простых сайтов - Мало настроек вывода крошек
  • 15. Drupal 8 • Крошки не на основе меню, а на основе пути, как в Breadcrumbs by path. Например, есть View по пути fruites. Есть термин таксономии с алиасом fruites/apples. И есть нода с алиасом fruites/apples/antonovka. -> http://example.com/fruites/apples/antonovka: Magic by PathBasedBreadcrumbBuilder. А ещё есть BookBreadcrumbBuilder, TermBreadcrumbBuilder и т.д. Drupal Meetup (Drupal Cafe) #5
  • 16. Path Breadcrumbs Старт: Апрель 2012 Автор: @Spleshka Установок: > 5 000 Текущая версия: 7.x-3.0-beta6 Drupal Meetup (Drupal Cafe) #5
  • 17. Path Breadcrumbs • Любой путь, любая страница • Контексты Ctools из пути (Arguments) • Дополнительные условия отображения (Selection Rules based на основе Ctools Access) • Все токены из всех контекстов (на основе Entity Token) • Microdata / Rich snippets (SEO) • Экспорт / Features • Многоязычность • Ctools API + PB API • Кеширование • Всякие плюшки (Home link, delimiter, truncate/transliterate) Drupal Meetup (Drupal Cafe) #5
  • 18. Path Breadcrumbs - Сложный для не-разработчиков :( - Какие пути? Какие контексты? Вы о чём вообще? Давайте попробуем исправить ситуацию с помощью демо. + Drupal Meetup (Drupal Cafe) #5
  • 19. Path Breadcrumbs. Под капотом. On Page Alter PB Core current_path() Cacheable Search I (Pattern) Search || (Path, Rules) Не найдено Ничего не делать. Не найдено найдено Построение навигационной цепочки drupal_set_breadcrumb() Drupal Meetup (Drupal Cafe) #5
  • 20. Path Breadcrumbs. Планы. • Добавить необязательные контексты, как у Page Manager: /my_view/%arg/!optional_arg • Advanced Forum / Book • Relationships (Связи, как в Ctool Access Rulesets) • Подсказка системного пути при попытке ввода алиаса • Багфиксы • Документация / Популяризация • Тесты, тесты, тесты! • Drupal 8? Drupal Meetup (Drupal Cafe) #5
  • 21. Ссылки • • • • https://drupal.org/project/path_breadcrumbs Rich snippets – Breadcrumbs https://drupal.org/node/533448 https://drupal.org/node/2098323 Drupal Meetup (Drupal Cafe) #5