Сортировка по цене, по алфавиту и по количеству
При всей очевидности доработка сайта интернет-магазина битрикс с использованием документации по сортировке не так очевидна. Возникла у меня задача при внедрении редизайна сделать сортировку по цене, по алфавиту и по количеству. В итоге рабочий вариант выглядит так:
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
На выходе получаем:
Ещё статьи:
15.02.2024
История о жадности или как клиент свободное место искал на сервере
Случилась у меня одна история с клиентом, который свободное место искал на сервере, но на самом деле это больше о жадности, но в итоге всё равно пришл...
ID: 466
08.11.2023
Хроники БУС упадка
На днях произошли очередные изменения в БУС битрикс. Полезный модуль bitrix.xscan включили в состав проактивной защиты и убрали из бесплатного сегмента...
ID: 465
26.07.2023
Kwork.com закрыл доступ для резидентов РФ
Доступ к выставлению услуг теперь ограничен "К сожалению, вынуждены сообщить, что резиденты РФ в настоящее время не могут использовать сайт Kwork...
ID: 463
Новые статьи в блоге:
07.02.2025
Битрикс ответ по ситуации с аспро
Размах проблемы взломов аспро видать достиг тревожных размеров. Только у меня около десяти обращений клиентов владельцев сайтов аспро.
В результате битрикс...
ID: 548
07.02.2025
Минус #1 Таймвеб - услуга антивируса 404 ошибка
На мой взгляд это жирный минус хостингу Таймвеб за отсутствие нормальной услуги с антивирусом, который можно было бы запустить в панели.
Так называемая...
ID: 547
06.02.2025
Аспро взломы и некрасивый поступок.
В этом году произошла серия взломов сайтов с шаблонами аспро. Казалось бы ну бывает, но дальнейшие события показывают партнёра битрикс с некрасивой ст...
ID: 546