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

Сортировка элементов в каталоге по умолчанию!

00 голосов
1
Здравствуйте, у меня следующая проблема! У меня комплексный компонент каталога, там при выводе элементов используется 3 типа сортировок: по названию, по цене, по новизне! По умолчанию активна сортировка по названию, скажите как сделать по индексу сортировки, но сохранить функционал сортировок: по названию, по цене, по новизне?

Как понимаю в шаблоне компонента править нужно:
Код
<?
$arAvailableSort = array(
   "name" => Array("name", "asc"), 
   "price" => Array('catalog_PRICE_'.$arResult['_PRICE_ID'], "asc"),
   "date" => Array('PROPERTY_NEWPRODUCT', "desc"),

);

$sort = array_key_exists("sort", $_REQUEST) && array_key_exists(ToLower($_REQUEST["sort"]), $arAvailableSort) ? $arAvailableSort[ToLower($_REQUEST["sort"])][0] : "name";
$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">
   <label><?=GetMessage('SECT_SORT_LABEL')?>:</label>

   <?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'))?>" class="<?=$className?>" rel="nofollow"><?=GetMessage('SECT_SORT_'.$key)?></a>
   
   <?endforeach;?>
</div>

 
спросил 30 Окт, 13 от Acier (460 баллов)

1 Ответ

00 голосов
Мне вот так помогло:

Код
$sort = array_key_exists("sort", $_REQUEST) && array_key_exists(ToLower($_REQUEST["sort"]), $arAvailableSort) ? $arAvailableSort[ToLower($_REQUEST["sort"])][0] : "SORT";
 
ответил 01 Дек, 13 от Acier (460 баллов)

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

0 голосов
3 ответов
спросил 23 Июнь, 13 от UnoL (340 баллов)
0 голосов
3 ответов
0 голосов
1 ответ
спросил 11 Окт, 13 от Xenam (160 баллов)
0 голосов
1 ответ