pdoNeighbors
Сниппет pdoNeighbors выводит предыдущие и следующие документы от указанного.
Умеет выводить по несколько соседей сразу, проверяет их статус (удалён, опубликован) и позволяет указать сортировку.
Вы можете выводить предыдущие/следующие документы по «menuindex», дате публикации или другому полю ресурса.
Параметры
Принимает все параметры pdoTools (за исключением чанков-шаблонов) и некоторые свои:
Параметр | По умолчанию | Описание |
---|---|---|
&id | Текущий документ | Идентификатор ресурса, относительно которого выводятся соседи. |
&loop | Да | Показывает или отменяет показ записей в цикле |
&tplPrev | см. ниже | Чанк ссылки на предыдущий документ. |
&tplUp | см. ниже | Чанк ссылки на родительский документ. |
&tplNext | см. ниже | Чанк ссылки на следующий документ. |
&tplWrapper | см. ниже | Чанк-обёртка, для заворачивания результатов. Понимает плейсхолдеры: [[+left]] , [[+top]] , [[+right]] и [[+log]] . Не работает вместе с параметром &toSeparatePlaceholders. |
&toPlaceholder | Если не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран. | |
&showLog | 0 | Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контексте «mgr». |
Шаблоны
Шаблон | По умолчанию |
---|---|
&tplPrev | @INLINE <span class="link-prev"><a href="/[[+uri]]">← [[+menutitle]]</a></span> |
&tplUp | @INLINE <span class="link-up">↑ <a href="/[[+uri]]">[[+menutitle]]</a></span> |
&tplNext | @INLINE <span class="link-next"><a href="/[[+uri]]">[[+menutitle]] →</a></span> |
&tplWrapper | @INLINE <div class="neighbors">[[+prev]][[+up]][[+next]]</div> |
Примеры
По умолчанию сниппет выводит соседей, как они есть в дереве ресурсов, то есть, ориентируется на «menuindex»:
modx
[[pdoNeighbors]]
По умолчанию, соседи выбираются от текущего документа, но можно указать и другой id:
modx
[[pdoNeighbors?
&id=`55`
]]
Сниппет отлично подходит для вывода ссылок на соседние новости (их лучше сортировать по дате публикации):
modx
[[pdoNeighbors?
&sortby=`publishedon`
&sortdir=`asc`
]]
Получение соседних товаров с выводом превью:
fenom
{'!pdoNeighbors' | snippet : [
'snippet' => 'msProducts',
'sortby' => 'publishedon',
'sortdir' => 'ASC',
'leftJoin' => '{ "thumbs": { "class":"msProductData","alias":"thumbs", "on": "thumbs.id = modResource.id" }}',
'select' => '{ "thumbs":"thumbs.thumb as small" }',
'tplWrapper' => '@INLINE {$prev}',
'tplPrev' => '@FILE chunks/product/item_prev.tpl',
]}