
pdoArchive
Сниппет предназначен для вывода архива документов сайта с разбивкой на годы, месяцы и дни.
Чанки
- tpl - Имя чанка для оформления ресурса. Если не указан, то содержимое полей ресурса будет распечатано на экран.
modx
@INLINE <li>[[+date]] <a href="[[+link]]">[[+menutitle]]</a></li>- tplYear - Шаблон для оформления года
modx
@INLINE <h3>[[+year]] <sup>([[+count]])</sup></h3><ul>[[+wrapper]]</ul>- tplMonth - Шаблон для оформления месяца
modx
@INLINE <li><h4>[[+month_name]] <sup>([[+count]])</sup></h4><ul>[[+wrapper]]</ul></li>- tplDay - Шаблон для оформления дня
modx
@INLINE <li><h5>[[+day]] <sup>([[+count]])</sup></h5><ul>[[+wrapper]]</ul></li>- tplWrapper - Чанк-обёртка, для заворачивания всех результатов. Понимает один плейсхолдер:
[[+output]].
Если вы хотите убрать вывод года, месяца или дня, то просто укажите эти чанки пустыми при вызове сниппета.
Параметры
Сниппет принимает общие параметры pdoTools.
| Параметр | По умолчанию | Описание |
|---|---|---|
| tplWrapper | Чанк-обёртка, для заворачивания всех результатов. Понимает один плейсхолдер: [[+output]]. | |
| wrapIfEmpty | Включает вывод чанка-обертки (tplWrapper) даже если результатов нет. | |
| dateField | createdon | Поле ресурса для получения даты документа: createdon, publishedon или editedon. |
| dateFormat | %H:%M | Формат даты для функции strftime() |
| showLog | Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контексте "mgr". | |
| sortby | createdon | Любое поле ресурса для сортировки, включая ТВ параметр, если он указан в параметре "includeTVs". Можно указывать JSON строку с массивом нескольких полей. Для случайно сортировки укажите "RAND()" |
| sortbyTV | Сортировка по ТВ параметру. Если он не указан в &includeTVs, то будет подключен автоматически. | |
| sortbyTVType | Тип сортировки по ТВ параметру. Возможные варианты: string, integer, decimal и datetime. Если пусто, то ТВ будет отсортирован в зависимости от его типа: как текст, число или дата. | |
| sortdir | DESC | Направление сортировки: по убыванию или возрастанию. |
| sortdirTV | ASC | Направление сортировки ТВ: по убыванию или возрастанию. Если не указан, то будет равен параметру &sortdir. |
| limit | Ограничение количества результатов выборки. Можно использовать "0". | |
| offset | Пропуск результатов от начала. | |
| depth | 10 | Глубина поиска дочерних ресурсов от родителя. |
| outputSeparator | \n | Необязательная строка для разделения результатов работы. |
| toPlaceholder | Если не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран. | |
| parents | Список родителей, через запятую, для поиска результатов. По умолчанию выборка ограничена текущим родителем. Если поставить 0 - выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключается из выборки. | |
| includeContent | Включаем поле "content" в выборку. | |
| includeTVs | Список ТВ параметров для выборки, через запятую. Например: "action,time" дадут плейсхолдеры [[+action]] и [[+time]]. | |
| prepareTVs | 1 | Список ТВ параметров, которые нужно подготовить перед выводом. По умолчанию, установлено в "1", что означает подготовку всех ТВ, указанных в "&includeTVs=``" |
| processTVs | Список ТВ параметров, которые нужно обработать перед выводом. Если установить в "1" - будут обработаны все ТВ, указанные в "&includeTVs=``". По умолчанию параметр пуст. | |
| tvPrefix | tv. | Префикс для ТВ параметров. |
| where | Массив дополнительных параметров выборки, закодированный в JSON. | |
| showUnpublished | Показывать неопубликованные ресурсы. | |
| showDeleted | Показывать удалённые ресурсы. | |
| showHidden | 1 | Показывать ресурсы, скрытые в меню. |
| hideContainers | Отключает вывод контейнеров, то есть, ресурсов с isfolder = 1. | |
| context | Ограничение выборки по контексту ресурсов. | |
| totalVar | total | Имя плейсхолдера для сохранения общего количества результатов. |
| resources | Список ресурсов, через запятую, для вывода в результатах. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки. | |
| select | Список полей для выборки, через запятую. Можно указывать JSON строку с массивом, например {"modResource":"id,pagetitle,content"}. | |
| scheme | Схема формирования ссылок: "uri" для подстановки поля uri документа (очень быстро) или параметр для modX::makeUrl(). | |
| useWeblinkUrl | 1 | Генерировать ссылку с учетом класса ресурса. |
Примеры
Обычный вызов:
modx
[[!pdoArchive?
&parents=`0`
]]Вызов через pdoPage:
modx
[[!pdoPage?
&element=`pdoArchive`
&parents=`0`
]]
[[!+page.nav]]Пример вывода тикетов, как на картинке в начале страницы:
modx
[[!pdoPage?
&element=`pdoArchive`
&parents=`0`
&limit=`1000`
&maxLimit=`1000`
&scheme=`uri`
&sortby=`publishedon`
&dateField=`publishedon`
&where=`{"class_key":"Ticket"}`
&tplYear=``
&tplMonth=`@INLINE <h4>{$month_name} {$year} <sup>({$count})</sup></h4><ul>{$wrapper}</ul>`
&tpl=`@INLINE <li>{$date} <a href="{$link}">{$menutitle}</a> / <small>{$section}</small></li>`
&leftJoin=`{
"Parent": {
"class": "modResource"
}
}`
&select=`{
"modResource": "*",
"Parent":"Parent.pagetitle as section"
}`
]]
