Егор

Егор

С нами с 26 марта 2014; Место в рейтинге пользователей: #1240
Андрей
21 февраля 2020, 13:39
1
0
Если товары minishop2, по идее можно попробовать как то так:
{'!mFilter2' | snippet : [
    ...всякие другие параметры...
    'sortbyOptions' => 'optionname:integer'
    'sortby' => 'optionname',
    'sortdir' => 'asc'
]}
Александр Мельник
03 ноября 2017, 17:56
3
0
Я делаю так
<div class="sort-title">Сортировать по:</div>
	<div class="sort-item">
	<a href="{$_modx->resource.id | url}?sortby=price&sortdir=DESC">убыванию </a>
	<i class="zmdi zmdi-long-arrow-down"></i>
	</div>
	<div class="sort-item">
	<a href="{$_modx->resource.id | url}?sortby=price&sortdir=ASC">возрастанию</a>
	<i class="zmdi zmdi-long-arrow-up"></i>
	</div>
В вызове сниппета, который будет выводить товары
'sortby' => $_modx->runSnippet('sortItName.php'),
    'sortdir' => $_modx->runSnippet('sortItDir.php'),
Ну и собственно содержание этих сниппетов
sortItDir.php'
<?php
$request=$_GET['sortby'];
switch($request) {
case "price":
    return ("Data.price");
    break;
case "rating":
    return("rating");
    break;
default:
    return("{\"menuindex\":\"DESC\"}");
    break;
}
sortItName.php
<?php
$request=$_GET['sortdir'];
switch($request) {
case "ASC":
    return("ASC");
    break;
case "DESC":
    return("DESC");
    break;
default:
    return("DESC");
    break;
}
Таким образом к ссылкам можно прикреплять любые поля и направления в GET параметрах.
Работает с перезагрузкой страницы, что можно считать минусом. А можно и плюсом, потому что сортировка без перезагрузки приводит к тому, что пагинация перестает работать. Если по умолчанию на странице 20 товаров, отсортировали и скажем товаров стало 10, то изменение пагинации требует сложной (уточню — для меня сложной работы с хешем), а так все ок.
Павел Гвоздь
17 июля 2016, 11:43
3
+1
Так есть же [[!+pageCount]]…
Вот на стандартном синтаксисе:
[[!pdoPage?
    &parents=`0`
    &limit=`5`
    &tpl=`@INLINE <div>[[+id]] - [[+pagetitle]]</div>`
]]
[[!+pageCount:ne=`1`:then=`[[!+page.nav]]`:else=`Без пагинации сегодня`]]

А это на Fenom:
{'!pdoPage' | snippet : [
    'element' => 'pdoResources',
    'parents' => 0,
    'limit' => 5,
    'tpl' => '@INLINE <div>{$id} - {$pagetitle}</div>',
]}
{if ('pageCount' | placeholder) != '1'}
    {'page.nav' | placeholder}
{else}
    Без пагинации сегодня
{/if}