Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

сортировка по количеству товаров на складе

00 голосов
2
Добрый день. На сайте реализована сортировка товаров по названию, цене и кол-ву на складе.
Всё работает так как надо, но если выставляю дефолтную сортировку по кол-ву на складе (CATALOG_QUANTITY), товары всегда выстраиваются в порядке возрастания, в не зависимости указанно ли asc или desc.
Код сортировки:

Код
<?
$arAvailableSort = array(
   "name" => Array("name", "asc"), 
   "price" => Array('catalog_PRICE_'.$arResult['_PRICE_ID'], "asc"),
   "quantity" => Array("CATALOG_QUANTITY", "desc"),

);

$sort = array_key_exists("sort", $_REQUEST) && array_key_exists(ToLower($_REQUEST["sort"]), $arAvailableSort) ? $arAvailableSort[ToLower($_REQUEST["sort"])][0] : "CATALOG_QUANTITY";
$sort_order = array_key_exists("order", $_REQUEST) && in_array(ToLower($_REQUEST["order"]), Array("asc", "desc")) ? ToLower($_REQUEST["order"]) : $arAvailableSort[$sort][1];   

?>
<div class="catalog-item-sorting"><span><?=GetMessage('SECT_SORT_LABEL')?>:</span><?foreach ($arAvailableSort as $key => $val):
      $className = $sort == $val[0] ? 'selected' : '';
      if ($className) 
         $className .= $sort_order == 'asc' ? ' asc' : ' desc';
      $newSort = $sort == $val[0] ? $sort_order == 'desc' ? 'asc' : 'desc' : $arAvailableSort[$key][1];
   ?><a href="<?=$APPLICATION->GetCurPageParam('sort='.$key.'&order='.$newSort,    array('sort', 'order'))?>" id="sort-sort-<?=$key?>" class="<?=$className?>" rel="nofollow"><?=GetMessage('SECT_SORT_'.$key)?></a><?endforeach;?>
</div>
 
Что делаю не так?
спросил 22 Март, 14 от DoKeR (100 баллов)

2 Ответы

00 голосов
Наверное не актуально, но необходимо заменить 
Код
$sort_order = array_key_exists("order", $_REQUEST) && in_array(ToLower($_REQUEST["order"]), Array("asc", "desc")) ? ToLower($_REQUEST["order"]) : $arAvailableSort[$sort][1];
на
Код
$sort_order = array_key_exists("order", $_REQUEST) && in_array(ToLower($_REQUEST["order"]), Array("asc", "desc")) ? ToLower($_REQUEST["order"]) : "desc";
ответил 19 Сен, 14 от CXOVELA (100 баллов)
00 голосов
Актуально, спасибо огромное.
ответил 24 Янв, 15 от DoKeR (100 баллов)

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

0 голосов
3 ответов
спросил 11 Март, 13 от StRanger (340 баллов)
0 голосов
3 ответов
спросил 23 Июнь, 13 от UnoL (340 баллов)
0 голосов
1 ответ
0 голосов
4 ответов