Сортировка на сайте

Добрый день!

Подскажите как можно реализовать сортировку на сайте.

Поля: по названию, площади, популярности(установил hitspage)

По всем полям нужна сортировка только по убыванию/возрастанию

Пробывал через tagmanager ничего не вышло.

Возможно можно сделать через Mfilter?

Спасибо!
Алексей
19 ноября 2015, 12:32
modx.pro
8
214 490
0

Комментарии: 7

Павел Романов
19 ноября 2015, 17:27
5
+4
Делаете два сниппета.

Первый sortLink:
<?php
if($_GET['sort'] == $field and $_GET['dir'] == 'ASC') {$arr='&_uarr;';}
if($_GET['sort'] == $field and $_GET['dir'] == 'DESC') {$arr='&_darr;';}
if(!$_GET[$field]){
	if($_GET['dir'] == 'ASC'){
		$output = '<a href="'.$url.'?'.$q.'sort='.$field.'&dir=DESC#prod">'.$name.''.$arr.'</a>';
	} else {
		$output = '<a href="'.$url.'?'.$q.'sort='.$field.'&dir=ASC#prod">'.$name.''.$arr.'</a>';
	}
} else {
	$output = '<a href="'.$url.'?'.$q.'sort='.$field.'&dir=ASC#prod">'.$name.'</a>';
}
return $output;
(во второй и третьей строке только уберите нижнее подчеркивание в &_uarr; и &_darr;)

Второй Sort:
<?php
$sort = $_GET['sort'];
if($sort == '') {
    $output='&sortby=`{"menuindex":"ASC"}`';
} else {
    $output = '&sortby=`{"'.$sort.'":"'.$_GET['dir'].'"}`';
}
return $output;

Используете так:
<div class="sort">
Сортировать: 
[[!sortLink? &url=`[[*uri]]` &field=`pagetitle` &name=`по названию`]]  
[[!sortLink? &url=`[[*uri]]` &field=`price` &name=`по цене`]]  
</div>
<div class="results">
[[!pdoResources?
&parents=`...`
&tpl=`...`
.........
[[!Sort]]
]]
</div>
    Алексей
    20 ноября 2015, 10:16
    0
    Спасибо за ответ!

    Что-то не работает.

    Каталог вывел через pdoresources, снипеты создал.

    Когда нажимаю на ссылки сортировки, адрес подставляется но не сортируется.

    Вы указываете #prod куда этот id запихнуть?

    P.S. и я так понимаю что по умолчанию при загрузке страницы сортировка должна быть от а-я по названию… но ее тоже нет

    Спасибо за ответ!
      Алексей
      20 ноября 2015, 12:19
      0
      Разобрался!

      После добавления в настройки pdoresources — &sortby=`pagetitle` и &sortdir=`ASC` заработало!

      Спасибо!
      Alexander Kirillov
      16 февраля 2016, 10:43
      0
      День добрый!

      У меня получилось сделать по цене и наименованию.

      А как сделать по количеству (Например: показывать по 10 товаров, по 20 товаров, по 100)?
        Alexander Kirillov
        16 февраля 2016, 16:06
        0
        Сейчас пишу так:

        Показывать по
        [[!sortLink? &url=`[[*uri]]` &field=`&limit=`15`` &name=`15`]]
        [[!sortLink? &url=`[[*uri]]` &field=`&limit=`25`` &name=`25`]]
        [[!sortLink? &url=`[[*uri]]` &field=`&limit=`50`` &name=`50`]]
        [[!sortLink? &url=`[[*uri]]` &field=`&limit=`100`` &name=`100`]]


        Но не работает(
      Алексей
      20 ноября 2015, 14:55
      0
      На странице каталога сортировка работает… но в категории почему то нет.

      В чем подвох?
        Алексей
        20 ноября 2015, 15:13
        0
        UPD. Прошу прощения все работает… в категориях не подключил сортировку )
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7