Skip to content
  1. Компоненты
  2. pdoTools
  3. Сниппеты
  4. pdoArchive

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) даже если результатов нет.
dateFieldcreatedonПоле ресурса для получения даты документа: createdon, publishedon или editedon.
dateFormat%H:%MФормат даты для функции strftime()
showLogПоказывать дополнительную информацию о работе сниппета. Только для авторизованных в контексте "mgr".
sortbycreatedonЛюбое поле ресурса для сортировки, включая ТВ параметр, если он указан в параметре "includeTVs". Можно указывать JSON строку с массивом нескольких полей. Для случайно сортировки укажите "RAND()"
sortbyTVСортировка по ТВ параметру. Если он не указан в &includeTVs, то будет подключен автоматически.
sortbyTVTypeТип сортировки по ТВ параметру. Возможные варианты: string, integer, decimal и datetime. Если пусто, то ТВ будет отсортирован в зависимости от его типа: как текст, число или дата.
sortdirDESCНаправление сортировки: по убыванию или возрастанию.
sortdirTVASCНаправление сортировки ТВ: по убыванию или возрастанию. Если не указан, то будет равен параметру &sortdir.
limitОграничение количества результатов выборки. Можно использовать "0".
offsetПропуск результатов от начала.
depth10Глубина поиска дочерних ресурсов от родителя.
outputSeparator\nНеобязательная строка для разделения результатов работы.
toPlaceholderЕсли не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран.
parentsСписок родителей, через запятую, для поиска результатов. По умолчанию выборка ограничена текущим родителем. Если поставить 0 - выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключается из выборки.
includeContentВключаем поле "content" в выборку.
includeTVsСписок ТВ параметров для выборки, через запятую. Например: "action,time" дадут плейсхолдеры [[+action]] и [[+time]].
prepareTVs1Список ТВ параметров, которые нужно подготовить перед выводом. По умолчанию, установлено в "1", что означает подготовку всех ТВ, указанных в "&includeTVs=``"
processTVsСписок ТВ параметров, которые нужно обработать перед выводом. Если установить в "1" - будут обработаны все ТВ, указанные в "&includeTVs=``". По умолчанию параметр пуст.
tvPrefixtv.Префикс для ТВ параметров.
whereМассив дополнительных параметров выборки, закодированный в JSON.
showUnpublishedПоказывать неопубликованные ресурсы.
showDeletedПоказывать удалённые ресурсы.
showHidden1Показывать ресурсы, скрытые в меню.
hideContainersОтключает вывод контейнеров, то есть, ресурсов с isfolder = 1.
contextОграничение выборки по контексту ресурсов.
totalVartotalИмя плейсхолдера для сохранения общего количества результатов.
resourcesСписок ресурсов, через запятую, для вывода в результатах. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки.
selectСписок полей для выборки, через запятую. Можно указывать JSON строку с массивом, например {"modResource":"id,pagetitle,content"}.
schemeСхема формирования ссылок: "uri" для подстановки поля uri документа (очень быстро) или параметр для modX::makeUrl().
useWeblinkUrl1Генерировать ссылку с учетом класса ресурса.

Примеры

Обычный вызов:

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