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"
}`
]]