Как использовать разную сортировку элементов в зависимости от категорий?
Требуется, если в категории есть подкатегории то использовать сортировку по просмотрам, а если это конечная категория, то использовать сортировку установленную в настройках визуального редактора.
Сортировка, как понимаю передаётся к компоненте bitrix:catalog.section.
В template.php в catalog.section я узнаю есть ли вложенность вот так
if(($arResult["RIGHT_MARGIN"] - $arResult["LEFT_MARGIN"]) == 1)
Потом пытаюсь поменять переменную сортировки вот так
$arParams['ELEMENT_SORT_FIELD'] = 'id'
Но это не работает.
Как я понимаю мне нужно эту переменную пробросить в компонент? Но как это сделать? Или я вообще неправильно делаю?
Ответы (1 шт):
Сортировка для компонента catalog настраивается перед вызовом самого компонента. Сортировка по пользовательским свойствам PROPERTY_<ваше свойство> - подробнее в курсе https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=3796&LESSON_PATH=3913.4776.4620.3796
$sort3 = 'PROPERTYSORT_STATUS';
$order3 = 'ASC';
$sort2 = 'PROPERTY_MINIMUM_PRICE';
$order2 = 'asc';
if ($location == "spb") {
$sort = 'PROPERTY_COUNTS_SPBS';
$order = 'desc';
}
$APPLICATION->IncludeComponent("bitrix:catalog", ".default", Array(
"DETAIL_SET_CANONICAL_URL" => "N", // Устанавливать канонический URL
"DETAIL_SET_VIEWED_IN_COMPONENT" => "N", // Включить сохранение информации о просмотре товара на детальной странице для старых шаблонов
"DETAIL_SHOW_MAX_QUANTITY" => "N", // Показывать общее количество товара
"DETAIL_USE_COMMENTS" => "N", // Включить отзывы о товаре
"DETAIL_USE_VOTE_RATING" => "N", // Включить рейтинг товара
"DISABLE_INIT_JS_IN_COMPONENT" => "N", // Не подключать js-библиотеки в компоненте
"DISPLAY_BOTTOM_PAGER" => "Y", // Выводить под списком
"DISPLAY_TOP_PAGER" => "Y", // Выводить над списком
"ELEMENT_SORT_FIELD" => $sort,
"ELEMENT_SORT_FIELD2" => $sort2,
"ELEMENT_SORT_ORDER" => $order,
"ELEMENT_SORT_ORDER2" => $order2,
"ELEMENT_SORT_FIELD3" => $sort3,
"ELEMENT_SORT_ORDER3" => $order3,