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

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

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


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


Ещё статьи:

20.09.2021 Разговор с рекрутером в 2021. Мидл это младший специалист и на удалёнку не ниже сеньёра
Рекрутер: В принципе ок, но обычно младших специалистов мы в офис берем). Что скажете?
П.С. Мда, интересно оказывается, что мидл это младший специалист,... ID: 320

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

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

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

23.09.2021 Тест провайдера adminvps.ru Тариф Битрикс 1 в 2021
Провёл тесты производительности Битрикс у провайдера adminvps.ru Тариф Битрикс 1.
В целом результаты мне очень понравились, что бросилось в глаза: ID: 321

01.07.2021 Типовые ошибки битрикс программиста на этапе предоставления образцов кода
ID: 319

07.05.2021 Дайджест №1 Ваджра и еврейский вопрос
На днях Ваджра зацепил так называемый "еврейский вопрос", выдержка цитата:
На днях я был безжалостно записан в антисемиты. Забавно. Честно говоря,... ID: 318

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

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