pdoArchive
pdoArchive — сниппет предназначен для вывода архива документов сайта с разбивкой на годы, месяцы и дни.
Дата публикации
30 Августа 2019
Дата изменения
5 Июля 2020
Уникальных просмотров
2.034
Оглавление
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,1259 s
Время запросов: 0,1259 s
Количество запросов: 24
Источник: cache
Время запросов: 0,1259 s
Количество запросов: 24
Источник: cache