
pdoNeighbors
Сниппет pdoNeighbors выводит предыдущие и следующие документы от указанного.
Умеет выводить по несколько соседей сразу, проверяет их статус (удалён, опубликован) и позволяет указать сортировку.
Вы можете выводить предыдущие/следующие документы по «menuindex», дате публикации или другому полю ресурса.
Параметры
Принимает все параметры pdoTools (за исключением чанков-шаблонов) и некоторые свои:
| Параметр | По умолчанию | Описание |
|---|---|---|
| &id | Текущий документ | Идентификатор ресурса, относительно которого выводятся соседи. |
| &loop | Да | Показывает или отменяет показ записей в цикле |
| &tplPrev | см. ниже | Чанк ссылки на предыдущий документ. |
| &tplUp | см. ниже | Чанк ссылки на родительский документ. |
| &tplNext | см. ниже | Чанк ссылки на следующий документ. |
| &tplWrapper | см. ниже | Чанк-обёртка, для заворачивания результатов. Понимает плейсхолдеры: [[+prev]], [[+top]], [[+next]] и [[+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',
]}
