Skip to content
  1. Компоненты
  2. pdoTools
  3. Сниппеты
  4. pdoCrumbs

pdoCrumbs

Сниппет для построения навигации в стиле хлебных крошек.

Хорошо заменяет BreadCrumb, работает с документами из любых контекстов и позволяет указывать различные условия для выборки ресурсов.

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

Параметры

Принимает все параметры pdoTools и некоторые свои:

ПараметрПо умолчаниюОписание
&showLog0Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контексте «mgr».
&from0Id ресурса, от которого строить хлебные крошки. Обычно это корень сайта, то есть «0».
&toId ресурса для которого строятся хлебные крошки. По умолчанию это id текущей страницы.
&excludeСписок id ресурсов, которые нужно исключить из выборки.
&toPlaceholderЕсли не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран.
&outputSeparator\nРазделитель между крошками
&tplИмя чанка для оформления ресурса. Если не указан, то содержимое полей ресурса будет распечатано на экран.
&tplCurrentЧанк оформления текущего документа в навигации.
&tplMaxЧанк, который добавляется в начало результатов, если их больше чем &limit.
&tplHomeЧанк оформления ссылки на главную страницу.
&tplWrapperЧанк-обёртка, для заворачивания всех результатов. Понимает один плейсхолдер: [[+output]]. Не работает вместе с параметром &toSeparatePlaceholders.
&wrapIfEmptyВключает вывод чанка-обертки &tplWrapper даже если результатов нет.
&showCurrent1Выводить текущий документ в навигации.
&showHome0Выводить ссылку на главную в начале навигации.
&showAtHome1Показывать хлебные крошки на главной странице сайта.
&hideSingle0Не выводить результат, если он один единственный.
&directionltrНаправление навигации: слева направо «ltr» или справа налево «rtl», например для Арабского языка.

Шаблоны

ШаблонПо умолчанию
&tpl@INLINE <li><a href="[[+link]]">[[+menutitle]]</a></li>
&tplCurrent@INLINE <li class="active">[[+menutitle]]</li>
&tplMax@INLINE <li class="disabled">&nbsp;...&nbsp;</li>
&tplHome
&tplWrapper@INLINE <ul class="breadcrumb">[[+output]]</ul>

Примеры

Генерация хлебных крошек для текущей страницы:

modx
[[pdoCrumbs]]

Генерация в ограничением по количеству пунктов:

modx
[[pdoCrumbs?
  &limit=`2`
]]

Сниппет хорошо работает при вызове из pdoResources. Например, вот такой чанк:

modx
<h3>[[+pagetitle]]</h3>
<p>[[+introtext]]</p>
[[pdoCrumbs?
  &to=`[[+id]]`
  &showCurrent=`0`
]]

Генерация микроразметки Schema.org в JSON-LD формате

fenom
{'!pdoCrumbs' | snippet : [
  'showHome' => 1,
  'tplWrapper' => '@INLINE
    <script type="application/ld+json">
      {
        "@context": "http://schema.org",
        "@type": "BreadcrumbList",
        "itemListElement": [ {$output} ]
      }
    </script>
  ',
  'tplHome' => '@INLINE
    {
      "@type": "ListItem",
      "position": {$idx},
      "item": {
        "@id": "{$link}",
        "name": "{$menutitle}"
      }
    },
  ',
  'tplCurrent' => '@INLINE
    {
      "@type": "ListItem",
      "position": {$idx},
      "item": {
        "@id": "{$link}",
        "name": "{$menutitle}"
      }
    }
  ',
  'tpl' => '@INLINE
    {
      "@type": "ListItem",
      "position": {$idx},
      "item": {
        "@id": "{$link}",
        "name": "{$menutitle}"
      }
    },
  ',
]}

Демо

Рабочий пример генерации хлебных крошек в результатах поиска mSearch2.

Демо