Сделать сортировку всех ресурсов по порядку в pdoResources
Простой и рабочий способ сортировки ресурсов по порядку в дереве front-end контекста Вашего сайта.
Часто работая с компонентами pdoResources сталкиваешься с тем, что не работает сортировка по порядку.
Сделать сортировку всех ресурсы по порядку в контексте можно очень просто.
- Создать сниппед с названием Sort.
<?php
$sort = $_GET['sort'];
$type = $_GET['type'];
$tv = $_GET['tv'];
if(isset($sort)) {
if($tv == 1) {
if($integer == 1) $integer = '&sortdirTVType=`integer`';
$output = '
&sortbyTV=`'.$sort.'`
&sortdirTV=`'.$_GET['dir'].'`
'.$integer.'
';
} else {
$output = '
&sortby=`'.$sort.'`
&sortdir=`'.$_GET['dir'].'`
';
}
} else {
if($defsort == '') $defsort = 'menuindex';
if($defdir == '') $defdir = 'ASC';
$output='
&sortby=`'.$defsort.'`
&sortdir=`'.$defdir.'`
';
}
return $output;
- Добавить в вызов сниппета
[[pdoResources? &parents=`...` &resources=`...` &depth=`...` &level=`...` &tpl=`...` &limit=`...` &includeTVs=`...` &includeContent=`1` &processTVs=`1` &docid=`1` [[Sort? &defsort=`` ]] ]]
или[[!pdoPage? &parents=`...` &tpl=`...` &limit=`...` [[!Sort]] ]]
По умолчанию
defsort=`` — будет сортировка по порядку ресурсов.
Поддерживаются 2-е конфигурации:
Пустое значение
[[Sort?
]]
или defsort=`` сортирует по меню и по порядку в дереве ресурсов,
&defdir=`` сортирует от меньшего к большему (ASC)
это конфигурация (ASC) можно использовать сортировку в дереве ресурсов по алфавитному порядку, например так:
[[!pdoResources?
&parents=`...`
&tpl=`...`
&limit=`...`
[[!Sort? &defsort=`pagetitle`]]
]]
Стандартные pdo — параметры &sortdir или &sortby указывать не надо.