Сортировка по цене, по алфавиту и по количеству

Сортировка по цене, по алфавиту и по количеству

13.02.2017

При всей очевидности доработка сайта интернет-магазина битрикс с использованием документации по сортировке не так очевидна. Возникла у меня задача при внедрении редизайна сделать сортировку по цене, по алфавиту и по количеству. В итоге рабочий вариант выглядит так:

if (
$_GET[«sort»] == «catalog_PRICE_1» ||
$_GET[«sort»] == «catalog_QUANTITY» ||
$_GET[«sort»] == «NAME»
//где catalog_PRICE_1 базовая розничная цена, catalog_QUANTITY -сортировка по количеству, ну а NAME и так понятно.
)
{
$arParams[«ELEMENT_SORT_FIELD»] = $_GET[«sort»];
$arParams[«ELEMENT_SORT_ORDER»] = $_GET[«method»];
$arParams[«PAGE_ELEMENT_COUNT»] = $_GET[«limit»];
//для обычной сортировки по возрастанию/убыванию используется метод asc/desc
//для количества любой кастомный метод, у меня limit
}else{}
<div_ class=»sort-catalog»>
<select_ onchange=»window.location.href=this.options[this.selectedIndex].value»>
<option_ VALUE=»» hidden disabled selected>по возрастанию</option>
<option_ VALUE=»?sort=catalog_PRICE_1&method=asc» <?if ($_GET[«method»] == «asc»):?>selected<?endif;?> >по возрастанию</option>
<option_ VALUE=»?sort=catalog_PRICE_1&method=desc» <?if ($_GET[«method»] == «desc»):?>selected<?endif;?> >по убыванию</option>
</select>
<select_ onchange=»window.location.href=this.options[this.selectedIndex].value»>
<option_ VALUE=»» hidden disabled selected>По алфавиту</option>
<option_ VALUE=»?sort=NAME&method=asc» <?if ($_GET[«method»] == «asc»):?>selected<?endif;?> >По алфавиту (А-Я)</option>
<option_ VALUE=»?sort=NAME&method=desc» <?if ($_GET[«method»] == «desc»):?>selected<?endif;?> >По алфавиту (Я-А)</option>
</select>
<select_ onchange=»window.location.href=this.options[this.selectedIndex].value»>
<option_ VALUE=»» hidden disabled selected>27 на страницу</option>
<option_ VALUE=»?sort=catalog_QUANTITY&limit=27″ <?if ($_GET[«limit»] == «27»):?>selected<?endif;?> >27 на страницу</option>
<option_ VALUE=»?sort=catalog_QUANTITY&limit=54″ <?if ($_GET[«limit»] == «54»):?>selected<?endif;?> >54 на страницу</option>
<option_ VALUE=»?sort=catalog_QUANTITY&limit=81″ <?if ($_GET[«limit»] == «81»):?>selected<?endif;?> >81 на страницу</option>
</select>
</div>

Все это дела помещаем в файл section_vertical.php, это если стандартный компонент каталога. Код вставляем перед catalog.section


На выходе получаем:


Ещё статьи:

01.12.2020 Свершилось, битрикс перестал поддерживать mbstring.func_overload
Теперь для обновления на версию v20.100.0 требуется удаление опции mbstring.func_overload. Эта опция более не требуется и не поддерживается платформой... ID: 313

13.08.2020 Получить id элемента привязки к пользователю битрикс
Получить id элемента, который добавлен в свойство привязки к пользователю битрикс ID: 250

22.06.2020 Дубли внешнего кода не грузятся при импорте Битрикс
При копировании штатными средствами элементов (кнопка копировать) обнаружил такой момент, что при XML экспорте и последующим XML импорте не вс... ID: 243

Новые статьи в блоге:

07.01.2021 Почему в битрикс автоматически отключаются пользователи
На сайте с определённой периодичностью происходила деактивация аккаунтов пользователей. Логин становился неактивным и зайти на сайт не получалось. ID: 314

07.01.2021 Ошибка сокетов
Бывает выскакивает такая ошибка в битрикс "Работа с сокетами    Ошибка! Не работает", "Замечание. Не удалось провер... ID: 315

26.11.2020 Вывод свойств фильтра картинками
Кастомный вид свойства в умном фильтре. Стандартных видов в виде списка, радиокнопок и выпадающих списков обычно недостаточно ID: 312

Возврат к списку

© 2015-2021 Web админ
Связаться по WhatsApp