@anriko

Как сделать еще одно поле поле для сортировки в каталоге одно для фильтра другое для секций?

5efe32c4cd098990791617.png
поле в админке в разделе в доп полях создал,но как его привязать к сортировки?
5efe336f3b4ce961398184.png
как это поле добавить сюда вставляю UF_SORT но по нему не сортирует 5efecfa2615ef999181164.png
  • Вопрос задан
  • 841 просмотр
Решения вопроса 1
@PetrPo
С версии модуля iblock 20.0.400 в компоненте catalog.section.list стал доступен параметр CUSTOM_SECTION_SORT и он работает - сам проверил.
В версиях модуля ниже чем указано в ддокументации этот параметр работать не будет

Можешь в файле /bitrix/components/bitrix/catalog.section.list/component.php найти
//ORDER BY
	$arSort = array(
		"left_margin"=>"asc",
	);


и заменить на то как в новой версии
//ORDER BY
	$arSort = array();
	if (!empty($this->arParams['CUSTOM_SECTION_SORT']) && is_array($this->arParams['CUSTOM_SECTION_SORT']))
	{
		foreach ($this->arParams['CUSTOM_SECTION_SORT'] as $field => $value)
		{
			if (!is_string($value))
			{
				continue;
			}
			$field = strtoupper($field);
			if (isset($arSort[$field]))
			{
				continue;
			}
			if (!preg_match('/^(asc|desc|nulls)(,asc|,desc|,nulls)?$/i', $value))
			{
				continue;
			}
			$arSort[$field] = $value;
		}
		unset($field, $value);
	}

	if (empty($arSort))
	{
		$arSort = array(
			"LEFT_MARGIN" => "ASC",
		);
	}


ну и к параметрам вызова компонента catalog.section.list добавить
$sectionListParams = array(
	//.......
	"CUSTOM_SECTION_SORT" => array("UF_SORT" => "ASC")
);


По красивому конечно надо в компонент каталога добавить параметр выбора сортировки и от него передавать в catalog.section.list
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы