@SteepNET

Разная сортировка при нажатии?

Добрый день! Подскажите как красивей сделать смену значений сортировки при нажатию на ссылку?

<a <? if ($_GET["sort"] == "catalog_PRICE_1"): ?><? endif;?>
href="<?= $arResult["SECTION_PAGE_URL"] ?>?sort=catalog_PRICE_1&method=asc">
<?= Loc::getMessage("PRICE") ?>
</a>

В коде method= может принимать значения
asc - по возрастанию;
desc - по убыванию;
  • Вопрос задан
  • 222 просмотра
Решения вопроса 1
@PetrPo
1. Атрибут href в ссылке лучше заменить на битриксовую функцию, это позволит сохранить другие GET параметры, если они есть
<?=$APPLICATION->GetCurPageParam('sort=указываешь поле для сортировки, в твоем случае catalog_PRICE_1&method=указываешь направление сортировки (ASC, DESC)', array('sort', 'method'))?>

!! method лучше замени на order, логичнее будет)

2. Если компонент комплексный:
идешь в файл где подключаешь простой компонент и подставляешь параметры из $_GET
$sort = !empty($_GET['sort']) ? $_GET['sort'] : $arParams['SORT_BY1'];
$method = !empty($_GET['method']) ? $_GET['method'] : $arParams['SORT_ORDER1'];

компонент news:
"SORT_BY1" => $sort,
"SORT_ORDER1" => $method,

компонент catalog:
"ELEMENT_SORT_FIELD" => $sort,
"ELEMENT_SORT_ORDER" =>	$method,

P.S. лучше добавить массив возможных полей для сортировки и проверять что параметр из $_GET соответствует тому что есть в этом массиве, чтобы даже если подставить ручками в адресную строку фигню какую-нибудь, то сработала сортировка по умолчанию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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