pdoArchive
pdoArchive — сниппет предназначен для вывода архива документов сайта с разбивкой на годы, месяцы и дни.
Дата публикации
30 Августа 2019
Дата изменения
5 Июля 2020
Уникальных просмотров
2.398
Оглавление
pdoArchive — сниппет предназначен для вывода архива документов сайта с разбивкой на годы, месяцы и дни.

Чанки
| Название | По умолчанию | Описание |
| tpl | @INLINE <li>[[+date]] <a href="[[+link]]">[[+menutitle]]</a></li> |
Имя чанка для оформления ресурса. Если не указан, то содержимое полей ресурса будет распечатано на экран. |
| tplYear | @INLINE <h3>[[+year]] <sup>([[+count]])</sup></h3><ul>[[+wrapper]]</ul> |
Шаблон для оформления года. |
| tplMonth | @INLINE <li><h4>[[+month_name]] <sup>([[+count]])</sup></h4><ul>[[+wrapper]]</ul></li> |
Шаблон для оформления месяца. |
| tplDay | @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 | Любое поле ресурса для сортировки, включая TV параметр, если он указан в параметре &includeTVs. Можно указывать JSON строку с массивом нескольких полей. Для случайно сортировки укажите RAND(). |
| &sortbyTV | Сортировка по TV параметру. Если он не указан в &includeTVs, то будет подключен автоматически. | |
| &sortbyTVType | Тип сортировки по TV параметру. Возможные варианты: string, integer, decimal и datetime. Если пусто, то TV будет отсортирован в зависимости от его типа: как текст, число или дата. | |
| &sortdir | DESC | Направление сортировки: по убыванию или возрастанию. |
| &sortdirTV | ASC | Направление сортировки TV: по убыванию или возрастанию. Если не указан, то будет равен параметру &sortdir. |
| &limit | Ограничение количества результатов выборки. Можно использовать «0». | |
| &offset | Пропуск результатов от начала. | |
| &depth | 10 | Глубина поиска дочерних ресурсов от родителя. |
| &outputSeparator | \n | Необязательная строка для разделения результатов работы. |
| &toPlaceholder | Если не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран. | |
| &parents | Список родителей, через запятую, для поиска результатов. По умолчанию выборка ограничена текущим родителем. Если поставить 0 — выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключается из выборки. | |
| &includeContent | Включаем поле «content» в выборку. | |
| &includeTVs | Список TV параметров для выборки, через запятую. Например: «action, time» дадут плейсхолдеры [[+action]] и [[+time]]. |
|
| &prepareTVs | 1 | Список TV параметров, которые нужно подготовить перед выводом. По умолчанию, установлено в «1», что означает подготовку всех TV, указанных в &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 | Генерировать ссылку с учетом класса ресурса. |
Примеры
Обычный вызов:
/* modParser */
[[!pdoArchive?
&parents=`0`
]]
/* pdoParser */
{$_modx->runSnippet('!pdoArchive', [
'parents' => 0
])}
Вызов через pdoPage:
/* modParser */
[[!pdoPage?
&element=`pdoArchive`
&parents=`0`
]]
[[!+page.nav]]
/* pdoParser */
{$_modx->runSnippet('!pdoPage', [
'element' => 'pdoArchive',
'parents' => 0
])}
{'page.nav' | placeholder}
Пример вывода тикетов, как на картинке в начале страницы:
/* modParser */
[[!pdoPage?
&element=`pdoArchive`
&parents=`0`
&limit=`1000`
&maxLimit=`1000`
&scheme=`uri`
&sortby=`publishedon`
&dateField=`publishedon`
&where=`{"class_key":"Ticket"}`
&tpl=`@INLINE <li>{$date} <a href="{$link}">{$menutitle}</a> / <small>{$section}</small></li>`
&tplMonth=`@INLINE <h4>{$month_name} {$year} <sup>({$count})</sup></h4><ul>{$wrapper}</ul>`
&tplYear=``
&leftJoin=`{
"Parent": {
"class": "modResource"
}
}`
&select=`{
"modResource": "*",
"Parent":"Parent.pagetitle as section"
}`
]]
/* pdoParser */
{$_modx->runSnippet('!pdoPage', [
'element' => 'pdoArchive',
'parents' => 0,
'limit' => 1000,
'maxLimit' => 1000,
'scheme' => 'uri',
'sortby' => 'publishedon',
'dateField' => 'publishedon',
'parents' => 0,
'where' => '{"class_key":"Ticket"}',
'tpl' => '@INLINE <li>{$date} <a href="{$link}">{$menutitle}</a> / <small>{$section}</small></li>',
'tplMonth' => '@INLINE <h4>{$month_name} {$year} <sup>({$count})</sup></h4><ul>{$wrapper}</ul>',
'tplYear' => '',
'leftJoin' => '{
"Parent": {
"class": "modResource"
}
}',
'select' => '{
"modResource": "*",
"Parent":"Parent.pagetitle as section"
}',
])}
Время работы: 0,1457 s
Время запросов: 0,1457 s
Количество запросов: 24
Источник: cache
Время запросов: 0,1457 s
Количество запросов: 24
Источник: cache