Не работает сортировка по алфавиту и рейтингу
Подскажите пожалуйста, правильно я понимаю, что здесь нет ссылки на сниппет?
Как создать правильно новый сниппет для сортировки по алфавиту?
Как создать правильно новый сниппет для сортировки по алфавиту?
<a href="[[~[[*id]]? &sortbyTVType=`integer` &sortbyTV=`rating` &sortdirTV=`DSC`]]"><img src="images/new/rating.png" alt="Сортировка по рейтингу" title="Сортировать по рейтингу"/></a>
<a href="[[~[[*id]]? &sortbyTVType=`integer` &sortbyTV=`pagetitle` &sortdirTV=`ASC`]]"><img src="images/new/ASC.png" alt="Сортировка от А до Я" title="Сортировать от А до Я"/></a>
<a href="[[~[[*id]]? &sortbyTVType=`integer` &sortbyTV=`pagetitle` &sortdirTV=`DSC`]]"><img src="images/new/DSC.png" alt="Сортировка от Я до А" title="Сортировать от Я до А"/></a> Комментарии: 2
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Допустим, у вас есть сниппет pdoResources на странице вида site.ru/catalog. Ссылки с заранее определенными способами фильтрации будут выглядеть примерно вот так:
site.ru/catalog?sortby=rating&dir=ASC
site.ru/catalog?sortby=pagetitle&dir=DESC
… и так далее.
Все, что идет после site.ru/ — это get-параметр ссылки и его нам необходимо перехватывать, чтобы отдавать сниппету, выводящему ресурсы.
Мы можем создать простой сниппет GET со следующим содержанием:
И вместе с данным сниппетом преобразовывать вывод ресурсов на странице примерно таким образом:
[[!pdoResources? &sortby=`[[!GET:default=`pagetitle`? &get=`sortby`]]` &sortdir=`[[!GET:default=`DESC`? &get=`dir`]]`]]
Минус данного решения в том, что пользователь может вбить свое значение в адрес ссылки, допустим: site.ru/catalog?sortby=TEST&dir=BANAN, в результате чего на странице сниппет вернет ошибку.
Поэтому, напишем свой сниппет pdoResourcesWithSort:
Вызывается как-то так: [[!pdoResourcesWithSort? &sortbyGet=`sortby` &sortdirGet=`dir`]]
[[!pdoPage?
&class=`geodata`
&loadModels=`geodata`
&sortby=`[[!#GET.sortby:is=`city_name`:or:is=`country_name`:then=`[[!#GET.sortby]]`:else=`city_name`]]`
&sortdir=`[[!#GET.sortdir:is=`asc`:or:is=`desc`:then=`[[!#GET.sortdir]]`:else=`asc`]]`
]]