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

Сортировка GetElementGroups

00 голосов
2
Как отсортировать группы, которые возращает GetElementGroups? Параметра сортировки я у него не нашел, как тогда поступить?
спросил 06 Март, 14 от muzzle (160 баллов)

2 Ответы

00 голосов
up?

Есть такой код:
Код
<?
// Выбираем массив разделов инфоблока "Продукция", в виде ссылок на разделы


// выбираем элементы раздела "Категории" инфоблока "Дополнительная рубрикация" 
// выводим название элемента и список названий групп, к которым он привязан 
$SECTION_ID = 180; 
$IBLOCK_ID = 34; 
$items = GetIBlockElementList($IBLOCK_ID, $SECTION_ID); 
while($arItem = $items->GetNext()) 
{ 
   echo '<h2>'.$arItem["NAME"].'</h2>'; 
   $res = CIBlockElement::GetElementGroups($arItem['ID']);
   while ($section = $res->GetNext()) { 
       if ($section['ID'] == $SECTION_ID) {
           continue;
       }
   /* Выставляем стили для ссылок (активная\не активная)
   act_elem - для все элементов
   sub_elem - для внутр. страниц (например "ассортимент")
   */
   $act_elem = GetIBlockElement(IntVal($_GET['ID']));
   $sub_elem = GetIBlockElement(IntVal($_GET['MENU_ID']));
   if ( ($act_elem['IBLOCK_SECTION_ID']==$section['ID']) || ($sub_elem['IBLOCK_SECTION_ID']==$section['ID']) ) {
      $style_id='bullet_open';
   } else {
      $style_id='bullet_inactive';
   }
    if ($section['ACTIVE']=='Y') {
      echo '<a href="javascript:void(0);" class="'.$style_id.'" id="ul_'.$section["ID"].'" onClick="menu('.$section['ID'].'); bullet('.$section["ID"].');" style="cursor:pointer;">'.$section["NAME"].'</a>';
      $sub_items = GetIBlockElementList(33, $section['ID'], Array("SORT"=>"ASC"), 10);
      $check_var=$sub_items->arResult[0]['NAME'];
      // Проверка на наличие подразделов 
      // Если есть хоть один подраздел - создать невидимый DIV с идентефикатором-номером родительской группы
      if ($check_var != '') { 
         echo '<div style="display:none;" id="'.$section['ID'].'"><ul class="cat_submenu" style="padding:0; margin:0 20px 5px 30px;">';
         while($arItem = $sub_items->GetNext()) {   
            $db_props = CIBlockElement::GetProperty(33, $arItem['ID'], "sort", "asc", Array("ID"=>"110"));
            // Вывод подразделов
            if ( ($arItem['ID']==$_GET['ID']) || ($arItem['ID']==$_GET['MENU_ID']) ) {
               echo '<li><a href="'.$arItem['DETAIL_PAGE_URL'].'" class="arrow_active">';
               if($ar_props = $db_props->Fetch()) echo $ar_props["VALUE"];
               echo '</a></li>';
               } else {
               echo '<li><a href="'.$arItem['DETAIL_PAGE_URL'].'" class="arrow_inactive">';
               if($ar_props = $db_props->Fetch()) echo $ar_props["VALUE"];
               echo '</a></li>';
               }
         }
      if ($check_var != '') echo '</ul></div>';
      }             
   }       
} 
}
/* Если открыт подраздел - не закрывать меню
$ID - для элементов
$MENU_ID - для внутр. страниц (например "ассортимент") */
if ($_GET['ID']) $open_elem = GetIBlockElement(IntVal($_GET['ID'])); 
elseif ($_GET['MENU_ID']) {
$open_elem = GetIBlockElement(IntVal($_GET['MENU_ID'])); 
}
echo '<script type="text/javascript">menu('.$open_elem["IBLOCK_SECTION_ID"].');</script>';
?>


Как мне получить возможность сортировать разделы ($section["ID"])?

Заранее спасибо
ответил 18 Авг, 14 от muzzle (160 баллов)
00 голосов
Сортировать группы, которые возвращает CIBlockElement::GetElementGroups(), нельзя.
ответил 23 Дек, 14 от Ly (4,580 баллов)

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

0 голосов
3 ответов
спросил 29 Апр, 14 от Dayredo (180 баллов)
0 голосов
0 ответов
спросил 12 Май, 16 от loony (540 баллов)
0 голосов
1 ответ
0 голосов
1 ответ