Вчера закончил работу над модулем, который позволяет создавать хлебные крошки очень гибким образом и для любых страниц. Фактически, он заменяет набор из ранее созданных модулей под Drupal 7, которые в своей связке кое-как позволяют строить навигационные линейки.
Почему надо использовать именно мой модуль:
1. Можно добавлять статическую страницу и задать хлебные крошки только для неё.
2. Можно добавить динамическую страницу (например, node/%node). В этом случае в навигационных ссылках можно будет использовать токены для замены.
3. Модуль не привязан ни к нодам, ни к вьюсам, ни к панелям и т.д. (в отличие от других модулей для хлебных крошек). Всё, что ему необходимо - это URL, на котором будет выведены навигационная линейка.
4. Имеются правила показа хлебных крошек. Это значит, что для одной и той же страницы могут показываться разные хлебные крошки! Например, можно показать одну навигацинную линейку для анонимов, а другую - для остальных пользователей. Если же взять пример для материалов - то можно показывать хлебные крошки в зависимости от типа материала, его статуса, значений полей и многого другого.
5. Есть возможность отключить хлебные крошки для любой страницы и включить их позже.
6. Поддержка мультиязычности: все заголовки хлебных крошек можно перевести.
7. Возможность указать хлебную крошку без ссылки (т.е. просто текстовую).
8. Удобный интерфейс.
9. Теперь все хлебные крошки хранятся в одном месте и действительно работают.
Почитать более подробно и со скриншотами можно у меня в блоге. Ссылка на сам модуль - Path breadcrumbs.
Комментарии
Это да, с крошками действительно как то все сложно. Пойду тестить..
Последние 2 раза для хлебных крошек нужно было указать ссылку Node Reference в теле Node. И вместо имени этого материала вывести одно из его полей (Проблема со склонениями). Может модуль это сделать ?
Не тестировал на референсах. Но если ctools это позволяет - то да, модуль это может У меня используются токены, предоставляемые ctools'ом для сущностей.
Контекст не могу назначить
Notice: Undefined index: argument в функции path_breadcrumbs_ui_argument_context_form() (строка 870 в файле home/www/sites/all/modules/path_breadcrumbs/path_breadcrumbs_ui/path_breadcrumbs_ui.module).
спасибо! давно такого не хватало
не думаете модуль Token задействовать?
Если можно - все баги в ишью модуля с подробным описанием. Как минимум мне надо знать путь и какие контексты присваивались.
Там есть аналог токенов от Ctools'a.
С контекстом разобрался, дело не в модуле было. Хотя php ошибки все равно остались. Потом отпишусь.
Тут бы пригодился, какой нибудь интерфейс для экспорта крошек. Например, ctools expotable.
Токены какие то странные, это так и должно быть?
И ещё вопрос, как добавить несколько контекстов?
Не ошибки, а уведомления В beta4 я это поправил.
Будет. На странице проекта экспорт и импорт висит в туду.
Да. Это placeholder'ы ctools'a.
Для одного элемента пути один контекст. Например, для node/%node можно привязать только один контекст к %node. Для some-page/%node/%node2 можно привязать уже 2 контекста.
Например, если мне для ноды нужны такие крошки:
Главная » Блог им. [usеr:namе] » [node:title]
То никак?
А почему бы не сделать как в page manager :
чтобы были системные страницы ,типа /node/%node ,/user/%user , /taxonomy/term/%taxonomy_term , которые будут выключены по умолчанию и при желании включены и добавлены нужные варианты в зависимости от выбранных рулесов ,
а все остальные добавлялись через local action "добавить кастомный Breadcrumb " ?
так было бы интуитивно более понятно и знакомо .
Наверно, можно вообще сделать просто плагин к page manager (новый тип варианта), чтобы не изобретать собственный велосипед. Многие вопросы бы решились сами собой. В page_manager есть множественные контексты, экспорт, отношения и т.д.
Пока никак. Но это на данный момент в разработке - будут и отношения.
Не всё так просто, как хотелось бы. Я уже думал над таким решением - и если будет время, то я так и сделаю. Изобретение своего велосипеда занимает определённое время
это понятно , но всё равно в сравнении с тем же ханзелем -небо и земля , так что спасибо за хорошее начинание .
Я тоже изначально думал об этом. Но потом вспомнил, что page manager заменяет контентную область. А мне надо лишь установить крошки. Там есть некоторое количество нюансов, которое не позволяет сделать предложенное решение универсальным.
Спасибо.
Но разве Hansel не позволяет для любого url делать любые хлебные крошки?
В то и дело, что позволяет И для любого url, и для любого типа ноды.
Жду ответ на вопрос.
Мутный он какой то этот хансель.. Когда ковырялся были проблемы для сложной связки вюьха- нода - вьюха
Кастом бреккампс спас, там все через тоекны получилось сделать..
Вот у меня такое же мнение о ханселе. Особенно поковырявшись в коде он мне совсем разонравился.
Немного доработал модуль. Вот список изменений:
Гугл рекомендует использовать микроданные http://support.google.com/webmasters/bin/answer.py?hl=ru&answer=99170&to..., модуль будет их поддерживать? http://support.google.com/webmasters/bin/answer.py?hl=ru&hlrm=en&answer=...
Конечно, почему бы и нет. В след. релиз войдёт.
Как и обещал - начиная с 7.x-2.0-beta8 появилась возможность включать поддержку микроданных или RDFa на выбор.
Кстати, как оказалось - можно Просто не все токены отображаются в списке. например, для построения такой крошки достаточно указать так:
Блог им. %node:author | %node:author:url
%node:title | %node:url
и всё будет прекрасно работать.
хочется крошить универсально. в закладки.
Спасибо большое за модуль)
Подскажите пожалуйста, как можно для одной и той же страницы выводить разные крошки, если попасть на нее можно из разных разделов. (Одна нода относится сразу к нескольким терминам.)
Как добавить урл ноды связанной с другой нодой.
заголовок я вывел а как урл вытянуть ноды к которой привязана вторая нода на странице которой выводим хлебные крошки?
Поставьте правило выбора - Custom PHP code, и в нём посмотрите $_SERVER['HTTP_REFERER'] - т.е. откуда пришёл пользователь. В зависимости от этого и показывайте крошки.
Поставьте модуль Entity Tokens (входит в Entity API). После чего включите Devel, перейдите в ноде на вкладку модуля Devel и посмотрите доступные токены для этого материала. Все эти токены можно использовать и в модуле Path Breadcrumbs - только на данный момент они не все отображаются в списке токенов для крошек (в разработке), однако прекрасно работают.
Совет достойный дарвиновской премии
Ты умеешь смотреть откуда пришёл пользователь иначе? Придумал свой метод Вити?
Я уж лучше буду писать в сессию и дёргать оттуда, чем советовать такое, если мне такое нужно будет.
Не говорю о том уже, что далеко не все задумаются фильтровать REFERER, а тут и до XSS недалеко
Чорные сеошники будут рады
А я вот именно за такое премию бы и давал. Зачем туда постоянно что-то записывать? Из-за этого как раз можно показать неверные крошки на странице.
А с каких пор я обязан обучать php грамоте? Если разработчик не умеет - это же не мои проблемы.
От 1 строки в сессии что-то изменится?
Я даю консультации по стратегическим вопросам(с). Понято
А нахрена её использовать, если можно без неё?
Я не давал код, который вставить в блок. Я подсказал реализацию. В чём проблема?
1.При создании правила выбора по словарю таксономии или термину в контексте ноды (для страницы ноды)возникает ошибка на странице ноды:
Notice: Undefined index: value в функции _ctools_entity_field_value_ctools_access_get_conf_field_values() (строка 172 в файле .../sites/all/modules/ctools/plugins/access/entity_field_value.inc).
Notice: Undefined index: value в функции ctools_entity_field_value_ctools_access_check() (строка 155 в файле .../sites/all/modules/ctools/plugins/access/entity_field_value.inc).
2.Конкретный Термин не выбирается в правиле выбора. Пишет "tid equals". Множественный выбор не возможен.
Последние beta и ctools.
А чем Hansel не устраивает?
Та же проблема с этим модулем.
В итоге пока пользуюсь Ханселем. Хоть он и мутный,но разобраться можно.
Хорошо я терминами не пользуюсь так что ханселем потом поделаю крошки.
Подскажите, а с кириллическими символами в урлах должно работать?
А то не получается настроить. Думаю, может причина в кириллице...
Раскурил я этот модуль. Хорошая штука!
С кириллицей работает. Но! Для нод нужно указывать не алиасы, а путь node/%nid
Для конструкций типа views, указываются уже реальные пути, например каталог/%tid .
Спасибо Евгению за модуль.
Как бы и модуль неплохой, но разобраться не могу - нормального описания для настройки нет, по крайней мере не нашёл, на блоге автора не совсем всё понятно, перевода тоже нет.
===>С Custom breadcrumb разобрался за полчаса.
===============================================
БЕРУ СВОИ СЛОВА ОБРАТНО, РАЗОБРАЛСЯ
Очень гибкий и настраивается под любые требования.
провозился с v2 - не шла таксономия. А вот с v3-dev все пошло прекрасно, только тогда заценил его прелесть. Спасибо за модуль!
Ставил недавно - интерфейс слегка неочевидный. Крошки так и не заработали. Работа конечно сильная.
В конце концов, среди всех модулей крошек нашёл единственный, который меня устроил - Crumbs. Прикольный минимальный интерфейс + АПИ ориентированный
Я тоже модуль Path breadcrumbs. Все удобно и понятно. Токены бы еще все выводились бы
3dev версия не выводит в крошках набор букв километровых , пришлось возвращать CTools до 1 верисии а модуль крошек до версии середины года 2012.
скоро ли исправится баг?
iNFerNo, читайте внимательнее описание модуля. Там написано, что для корректной работы модуля необходимо применить к CTools этот патч.
Там в последней версии Chaos Tools были поломаны многоуровневые токены.
Ага, при задании урла нам в подсказке так и написано. И в описании модуля тоже это написано
А мы не ищем легких путей ;). Наш девиз: пробуем, пытаемся, экспериментируем; а уже если не получается - читаем инструкцию ;)).
Спасибо за ответ. Попробую пропачить.
Все отлично! Спасибо за помощь.
Господа, подскажите, как "накрошить" именем книги, если пользователь находится на странице этой книги?
То есть, есть модуль book. У него есть "подшивки". Я как пользователь нахожусь на странице подшивки. Как программист хочу вывести в крошки следующую последовательность:
Мой супер-мега-сайт о многомиллионном бизнесе > Название подшивки > Глава 2
Вот с названием подшивки - беда.
В токенах есть %nid:book. Подозреваю, что глюк в токенах не выводит остальные вероятные комбинации. Пробовал комбинации типа %nid:book:parent:name или %nid:book:parent:url, но не добился того, что необходимо.
Какие вообще есть способы увидеть те токены, которые не отображаются?
Заранее спасибо!
Без патча ctools никак сейчас?
К сожалению, никак. Это не от меня зависит.
Странно... Во время создания, сразу после установки модуля, ввожу имя, затем на следующей странице жму Change, после чего экран осветляется, а всплывающее окно с опциями не появляется... И так висит.
Уаажаемые коллеги, а этот модуль позволяет геннерить хлебные крошки для материалов, у которых контент-манагер не поставил галочку "Создать пункт меню"? ВЫ будете смеяться, но это - проблема. Забудут в 10-20 новостях галочку поставить и удивляются потом, куда из хлебных крошек делся родительский пункт "Новости"
protoftor позволяет.
Блин и модуль хороший и работал он у меня как-то...
А тут:
Notice: Undefined index: argument в функции path_breadcrumbs_ui_argument_context_form() (строка 1057 в файле /home/u2986/domains/******/sites/all/modules/path_breadcrumbs/path_breadcrumbs_ui/path_breadcrumbs_ui.module).
похоже и у других было.
версия 7.x-3.2
Chaos Tools 7.x-1.7
Ни для таксономии, ни для нод, ни для даже пути вьюсов не работает.
В чем может быть проблема?