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

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

00 голосов
3
Добрый день!

Я сделал кнопки сортировки в каталоге товаров с помощью SortingEx. Всё работает.
Но есть проблема - по умолчанию сортировка каждой новой страницы идёт по названию товара (name) и по убыванию (desc) (т.е. от Я до А)

Скажите, какой код нужно прописать, чтобы сортировка по умолчанию происходила по названию товара и по возрастанию (т.е. от А до Я)??

п.с. Я пытался прописал код функции InitSorting, но он у меня не работает :(

сайт - www.boris-i-pavel.ru

Спасибо!
Денис

Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div class="catalog-section">
<?if($arParams["DISPLAY_TOP_PAGER"]):?>
   <?=$arResult["NAV_STRING"]?><br />
<?endif;?>

<?
// если переменные $by и $order явно заданы, то их значения запоминаются в сессии
// иначе они инициализируется значениями хранимыми в сессии
InitSorting(
 $by="name",
 $order="asc"
);
$rsUsers = CUser::GetList($by, $order);
?>

<? if(count($arResult['ITEMS']) != 0) : ?> 

<table>
<tr>
<td><b>Сортировать по:</b></td>
<td>названию<?=SortingEx("name")?></td>
<td>ТМ<?=SortingEx("PROPERTY_CML2_NAME_3")?></td>
<td>месту пр-ва<?=SortingEx("PROPERTY_CML2_COUNTRY")?></td>
<td>сроку годности<?=SortingEx("PROPERTY_CML2_EXPIRY")?></td>
</tr>
</table>

<? endif; ?> 

<br>
         <table width ="100%" cellpadding="0" cellspacing="0" border="0">
          <thead>
            <tr>
               <td width="35%" align="center" valign="center"><b></b></td>
               <td width="65%" align="center" valign="center"><b></b></td>

            </tr>
          </thead>

<tbody>

<?foreach($arResult["ITEMS"] as $cell=>$arElement):?>

<tfoot>
<tr>
<td colspan="5" align="center"><IMG SRC="/products/line_small_2.JPG"></td>
</tr>
</tfoot>


<td valign="center" align="center">
<a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><img border="1" src="<?=$arElement["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arElement["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arElement["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arElement["NAME"]?>" title="<?=$arElement["NAME"]?>" /></a>
<br><a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><b>Подробнее &#8594;</b></a>
</td>

<td valign="center">
<a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><b><?=$arElement["PROPERTIES"]["CML2_NAME"]["VALUE"]?> <?=$arElement["PROPERTIES"]["CML2_NAME_2"]["VALUE"]?> <?=$arElement["PROPERTIES"]["CML2_ADDNAME"]["VALUE"]?></b></a>
<br>Торговая марка: <?=$arElement["PROPERTIES"]["CML2_NAME_3"]["VALUE"]?>
<br>Место производства: <?=$arElement["PROPERTIES"]["CML2_COUNTRY"]["VALUE"]?> <?=$arElement["PROPERTIES"]["CML2_ORIGIN"]["VALUE"]?>
<br>Жирность: <?=$arElement["PROPERTIES"]["CML2_FAT"]["VALUE"]?>
<br>Форма: <?=$arElement["PROPERTIES"]["CML2_HEAD"]["VALUE"]?>
<br>Вес кг: <?=$arElement["PROPERTIES"]["CML2_WEIGHT"]["VALUE"]?>
<br>Ед изм: <?=$arElement["PROPERTIES"]["CML2_STORE"]["VALUE"]?>
<br>Срок годности: <?=$arElement["PROPERTIES"]["CML2_EXPIRY"]["VALUE"]?>
</td>
</tr>
   
      <?$cell++;
      if($cell%$arParams["LINE_ELEMENT_COUNT"] == 0):?>
         </tr>
      <?endif?>

      <?endforeach; // foreach($arResult["ITEMS"] as $arElement):?>

      <?if($cell%$arParams["LINE_ELEMENT_COUNT"] != 0):?>
         <?while(($cell++)%$arParams["LINE_ELEMENT_COUNT"] != 0):?>
            <td> </td>
         <?endwhile;?>
         </tr>
      <?endif?>

</tbody>
</table>
<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
   <br /><?=$arResult["NAV_STRING"]?>


<?endif;?>
</div> 
спросил 23 Июнь, 13 от UnoL (340 баллов)

3 Ответы

00 голосов
Помогите, пожалуйста!
ответил 23 Июнь, 13 от UnoL (340 баллов)
00 голосов
Вы привели код шаблона компонента, где непонятно зачем используете InitSorting и вот это:
Цитата
$rsUsers = CUser::GetList($by, $order);

Т.е. этот код лишь порождает лишнюю нагрузку на базу и все.

К сортировке товаров он не имеет никакого отношения. Код вызова компонента приведите. Настройка направления сортировки там. Если это bitrix:catalog или bitrix:catalog.section - параметр называется ELEMENT_SORT_ORDER. Значение должно быть ASC.
ответил 14 Июль, 13 от Pomnep (13,960 баллов)
00 голосов
Евгений, у меня всё получилось!!

ОГРОМНЕЙШЕЕ ВАМ СПАСИБО!!!!

Денис
ответил 19 Окт, 13 от UnoL (340 баллов)

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

0 голосов
1 ответ
0 голосов
3 ответов
0 голосов
2 ответов
спросил 22 Март, 14 от DoKeR (100 баллов)
0 голосов
1 ответ
спросил 11 Окт, 13 от Xenam (160 баллов)
0 голосов
0 ответов
спросил 09 Апр, 14 от Lilali (100 баллов)