pdoNeighbors
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»:
/* modParser */
[[pdoNeighbors]]
/* pdoParser */
{$_modx->runSnippet('pdoNeighbors')}
По умолчанию, соседи выбираются от текущего документа, но можно указать и другой id:
/* modParser */
[[pdoNeighbors?
&id=`55`
]]
/* pdoParser */
{$_modx->runSnippet('pdoNeighbors', [
'id' => 55
])}
Сниппет отлично подходит для вывода ссылок на соседние новости (их лучше сортировать по дате публикации):
/* modParser */
[[pdoNeighbors?
&sortby=`publishedon`
&sortdir=`asc`
]]
/* pdoParser */
{$_modx->runSnippet('pdoNeighbors', [
'sortby' => 'publishedon',
'sortdir' => 'asc',
])}
Время запросов: 0,1112 s
Количество запросов: 24
Источник: cache