Дата публикации
30 Августа 2019
Дата изменения
5 Июля 2020
Уникальных просмотров
322

Оглавление

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

Благодарность автору

Если по какой-либо причине вы хотите поблагодарить автора данного ресурса, вы можете это сделать одним из удобных для вас способов ниже.

Один из самых популярных способов поблагодарить автора, воспользоваться сервисом Яндекс.Деньги.

Время работы: 0,1261 s
Время запросов: 0,1261 s
Количество запросов: 24
Источник: cache