Оглавление

pdoArchive — сниппет предназначен для вывода архива документов сайта с разбивкой на годы, месяцы и дни.

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"
    }',
])}