Сортировка ресурсов в pdoResources

Сделать сортировку всех ресурсов по порядку в pdoResources

Простой и рабочий способ сортировки ресурсов по порядку в дереве front-end контекста Вашего сайта.


Часто работая с компонентами pdoResources сталкиваешься с тем, что не работает сортировка по порядку.
Сделать сортировку всех ресурсы по порядку в контексте можно очень просто.
  1. Создать сниппед с названием 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;
  1. Добавить в вызов сниппета 
[[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 указывать не надо.
 

Комментарии