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

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

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

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

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

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

06.05.2021 Кто такой Андрей Ваджра? Мой персональный отзыв об этом псевдо-эксперте
Есть такой псевдо-аналитик Андрей Ваджра с Украины, основная специализация которого украинская тематика. У него есть канал в ютубе, новостной сайт и группы... ID: 317

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

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