Последний раз о произвольной сортировке в Битриксе. Сортировка элементов в битрикс
Сортировка элементов по индексу сортировки значений типа список
Внутри любого компонента есть заранее заложенные поля для сортировки элементов. Можно сортировать элементы в разных направлениях по этим полям:
Однако возможна и сортировка по произвольным значениям. Например по свойству типа список. Просто выбираем параметр "Другое" в выпадающем списке и вписываем код свойства, по которому нужно сортировать.
Здесь, обязательно, перед кодом свойства нужно вписать property_ в начало поля.
Но, не всегда все очевидно. Предположим, что у нас есть свойство типа список c кодом ATT_TIP_ELEMENTA: просто вписываем property_ATT_TIP_ELEMENTA и все эементы отсортируются по названию элемента списка в алфавитном порядка.
Но мы хотим не по алфавиту, а по сортировке внутри значений свойства. В моем случае, есть несколько значений для свойства список и каждому из них проставлена сортировка.
Казалось бы, если распечатать массив $arResult для компонента каталог (или новости, это не важно), сортировка свойств хранится в поле VALUE_SORT и в параметры сортировки нужно вписывать property_ATT_TIP_ELEMENTA_value_sort
Но нет! Для этой настройки нужно использовать propertysort_ATT_TIP_ELEMENTA. И тогда все сработает.
Разновидности сортировок:
И приложу несколько примеров сортировки для разных режимов использования. Взято из официальной документации Битрикc:
- catalog_ - по полю CATALOG_FIELD (может быть PRICE - цена или CURRENCY - валюта) из цены с типом PRICE_TYPE (например, catalog_PRICE_1 или CATALOG_CURRENCY_3). Сортировка должна иметь формат: CATALOG_(PRICE или CURRENCY)_ID-типа-цены.
- catalog_QUANTITY - сортировка по количеству.
- PROPERTY_. - по значению поля элемента указанного в качестве привязки. PROPERTY_CODE - мнемонический или символьный код свойства типа привязка к элементам. FIELD может принимать значения: ID, TIMESTAMP_X, MODIFIED_BY, CREATED, CREATED_DATE, CREATED_BY, IBLOCK_ID, ACTIVE, ACTIVE_FROM, ACTIVE_TO, SORT, NAME, SHOW_COUNTER, SHOW_COUNTER_START, CODE, TAGS, XML_ID, STATUS
- PROPERTY_.PROPERTY_ - по значению свойства элемента указанного в качестве привязки. PROPERTY_CODE - мнемонический или символьный код свойства типа привязки к элементам. PROPERTY_CODE2 - код свойства связанных элементов.
- HAS_PREVIEW_PICTURE и HAS_DETAIL_PICTURE - сортировка по наличию и отсутствию картинок.
camouf.ru
Сортировка элементов в Битрикс Видео
4 г. назад
В этом видеоуроке мы рассмотрим технически сложную тему -- как настроить любой компонент Битрикса, который...
7 г. назад
С помощью сортировки можно управлять списком элементов по типу рейтингов.
2 г. назад
В данном видео покажу как настроить отображение списка элементов в административной части сайта на 1С-Битр...
3 г. назад
http://dimos.ru - блог игродела/веб-разработчика (cоветы, уроки, обмен опытом) https://vk.com/webdev_dimos - моя группа Вконтакте.
1 г. назад
Бонусы для подписчиков - https://expls.com/subscribe-expls В этом уроке мы разберем что такое слои и как работает сортировк...
1 г. назад
Фильтр списка элементов.
10 мес. назад
Вывести множественное свойство типа строка в виде select.
2 г. назад
Порой стоят задачи где без режима правки в системе 1С-Битрикс не обойтись, это экономит и время на редактиро...
3 г. назад
http://dimos.ru - блог игродела/веб-разработчика (cоветы, уроки, обмен опытом) https://vk.com/webdev_dimos - моя группа Вконтакте.
5 г. назад
Пошаговый план по созданию сайта: https://webformyself.com/hivideo/ Создавая интернет магазин всегда необходимо создава...
12 мес. назад
6 г. назад
http://www.teachvideo.ru/catalog/29 - еще больше обучающих роликов об администрировании и разработке сайтов ответят на...
4 г. назад
Что то не понятно? Я готов проконсультировать ТЕБЯ в своей группе: http://vk.com/bitrix_spb Мой сайт: http://lyrmin.ru/ Вы...
3 г. назад
Курс №3 - Расширенные технологии и производительность http://academy.1c-bitrix.ru/training/course/5863/ Материалы, задание и...
2 г. назад
Таблица элементов – является основным средством для группировки и отображения информации в системе. В...
3 г. назад
Курс №2 - Основные технологии и расширение типовых возможностей системы http://academy.1c-bitrix.ru/training/course/5863/ Матери...
6 г. назад
http://www.teachvideo.ru/catalog/29 - еще больше обучающих роликов об администрировании и разработке сайтов ответят на...
4k-video.ru
Дмитрий Новиков - Последний раз о произвольной сортировке в Битриксе. Публикация в категории "1C-Битрикс"
Это задача, которая возникает не часто, как правило при доработке существующих сайтов. Когда в ТЗ встречается пункт «сделать сортировку по следующим параметрам:…» - понимаешь, что вроде бы решение типовое, и делал такое уже много раз, но почему-то каждый раз приходится заново вспоминать, как это делается, анализировать структуру каталога, проверять нужные свойства на доступность… В общем, пора поставить точку в этом вопросе.
Как правило, мы имеем дело с комплексным компонентом каталога. Заходим в шаблон, находим там section.php – на этой странице и будем работать. Если же используется простой компонент «элементы раздела» - тогда ищем страницу, на которой расположен код компонента. В сам компонент мы заглядывать не будем – будем работать только с его параметрами.
А в параметрах компонента нас ждут следующие чудесные строки (для комплексного каталога):
"ELEMENT_SORT_FIELD" => $arParams["ELEMENT_SORT_FIELD"], "ELEMENT_SORT_ORDER" => $arParams["ELEMENT_SORT_ORDER"],Это параметр для сортировки, и для ее направления. ELEMENT_SORT_ORDER может равняться «asc» - сортировка по возрастанию, и «desc» - сортировка по убыванию. Это достаточно простой аспект. А вот то, по чему мы сортируем список товаров – уже интереснее.
Сортировка по цене:
$arParams["ELEMENT_SORT_FIELD"] = "catalog_PRICE_1";Сортировка по популярности:
$arParams["ELEMENT_SORT_FIELD"] = "SHOW_COUNTER";Сортировка по свойству:
$arParams["ELEMENT_SORT_FIELD"] = "PROPERTY_ХХХ"; где ХХХ – ID свойства.Задача сводится к тому, чтобы задать для сортировки два параметра – sort field и order. Задать из можно по вашему усмотрению, например через проверку GET-параметров, а в начале страницы разместить ссылки с этими GET-параметрами. Или через POST и отправку формы. Или через AJAX… В общем, как вам больше нравится.
А что, если клиент просит вас сделать еще и второстепенную сортировку? Например, главная сортировка по параметру и дополнительная – по имени (в прямом или обратном алфавитном порядке). Тогда приходят на помощь две дополнительные строки, крайне похожие на первые:
"ELEMENT_SORT_FIELD2" => $arParams["ELEMENT_SORT_FIELD2"], "ELEMENT_SORT_ORDER2" => $arParams["ELEMENT_SORT_ORDER2"],Их чаще всего нет в списке параметров компонента, но если их добавить – они обработаются корректно. Принцип работы тот же – в sort field 2 и order 2 подставляем нужные нам значения.
Бывает ли ELEMENT_SORT_FIELD3 и ELEMENT_SORT_ORDER3, 4, 5 и т.д. – не проверял. Да и задач таких не возникало, двух сортировок обычно хватает за глаза в любом каталоге.
dmnv.ru