Добрый день. Нужно сделать в каталоге сортировку одновременно по трем полям: цена, наличие товара и наличие фото. То есть сначала должны выводится товары с фото и в наличии, отсортированные по цене. Сейчас используется сортировка по двум полям - наличие и цена,
$arParams["ELEMENT_SORT_FIELD"] = 'CATALOG_QUANTITY';
$arParams["ELEMENT_SORT_ORDER"] = "desc";
и
$arParams["ELEMENT_SORT_FIELD2"] = "CATALOG_PRICE_1";
$arParams["ELEMENT_SORT_ORDER2"] = "asc";
соответственно.
Но когда я добавляю сортировку для наличия картинок -
$arParams["ELEMENT_SORT_FIELD3"] = 'HAS_DETAIL_PICTURE';
$arParams["ELEMENT_SORT_ORDER3"] = "desc";
ничего не происходит. Как добавить третий вариант сортировки??
Наиболее похожее решение, что я нашел - этоbitrix.space/all/sortirovka-v-razdele-po-neskolkim-svoystvam-bitriks .
Не пойму, в какое место в файле component.php дописывать строки?
$arParams["ELEMENT_SORT_FIELD"] = 'CATALOG_QUANTITY';
$arParams["ELEMENT_SORT_ORDER"] = "desc";
и
$arParams["ELEMENT_SORT_FIELD2"] = "CATALOG_PRICE_1";
$arParams["ELEMENT_SORT_ORDER2"] = "asc";
соответственно.
Но когда я добавляю сортировку для наличия картинок -
$arParams["ELEMENT_SORT_FIELD3"] = 'HAS_DETAIL_PICTURE';
$arParams["ELEMENT_SORT_ORDER3"] = "desc";
ничего не происходит. Как добавить третий вариант сортировки??
Наиболее похожее решение, что я нашел - это
Не пойму, в какое место в файле component.php дописывать строки?
Код |
---|
Сортировать товары в каталоге по нескольким свойствам.Решение: Копируем компонент catalog.section Дописываем новые параметры в файл .parameters.php'ELEMENT_SORT_FIELD3' => array( 'PARENT' => 'DATA_SOURCE', 'NAME' => GetMessage('IBLOCK_ELEMENT_SORT_FIELD3'), 'TYPE' => 'LIST', 'VALUES' => $arSort, 'ADDITIONAL_VALUES' => 'Y', 'DEFAULT' => 'id', ), 'ELEMENT_SORT_ORDER3' => array( 'PARENT' => 'DATA_SOURCE', 'NAME' => GetMessage('IBLOCK_ELEMENT_SORT_ORDER3'), 'TYPE' => 'LIST', 'VALUES' => $arAscDesc, 'DEFAULT' => 'desc', 'ADDITIONAL_VALUES' => 'Y', ), В файле component.php дописываем прием новых параметров сортировки: if (empty($arParams['ELEMENT_SORT_FIELD3'])) $arParams['ELEMENT_SORT_FIELD3'] = 'id'; if (!preg_match('/^(asc|desc|nulls)(,asc|,desc|,nulls){0,1}$/i', $arParams['ELEMENT_SORT_ORDER3'])) $arParams['ELEMENT_SORT_ORDER2'] = 'desc';и тут:$arSort = array( $arParams['ELEMENT_SORT_FIELD'] => $arParams['ELEMENT_SORT_ORDER'], $arParams['ELEMENT_SORT_FIELD1'] => $arParams['ELEMENT_SORT_ORDER1'], $arParams['ELEMENT_SORT_FIELD2'] => $arParams['ELEMENT_SORT_ORDER2'], $arParams['ELEMENT_SORT_FIELD3'] => $arParams['ELEMENT_SORT_ORDER3'], ); Подключаем кастомный компонент и настраиваем сортировку. |