партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
Страницы: 1
Ответить
RSS
Как в модуле menu.sectionswithelements поменять порядок выдачи элементов
 
Какой порядок выдачи элементов в разделах инфоблока? Как его изменить?

Пытался изменить сортировку элементов - не помогает
Пытался изменить дату элементов - не помогает

Прямых настроек по сортировке в модуле не нашел.
 
Что касается элементов, в компоненте только один вызов CIBlockElement::GetList. Там можно установить сортировку.
 
Хороший ответ 8)
А можно более подробно?
 
Хорошо :)

В файле component.php есть строка:

Код

$rsElements CIBlockElement::GetList(array(), $arFilterfalsefalse$arSelect);


Первый параметр у функции отвечает за сортировку. Вы можете поставить, например, Array("sort"=>"asc") или Array("name"=>"asc", "sort"=>"asc").

Полный перечень возможных сортировок есть здесь: CIBlockElement::GetLIst.
 
Сортировка заработала! Спасибо!
 
Скажите, а разделы и инфоблоки в данном компоненте сортируются вместе? То есть возможно отсортировать пункты меню вне зависимости от вложенности вот так:
- секция
- секция
- элемент
- секция
....
 
Цитата
Гость пишет:
Скажите, а разделы и инфоблоки в данном компоненте сортируются вместе? То есть возможно отсортировать пункты меню вне зависимости от вложенности вот так:
- секция
- секция
- элемент
- секция
В этом компоненте такой функционал не заложен, но можете доработать, использовав, например, функцию сортировки массивов по ключу:

Код

class CGrain_ArrayTools {


   function 
SortArrayByKey($array,$key,$order,$maintain_index=true,$method="FLOAT") {

      
// array stable-sort function

      
if (!is_array($array) || (is_array($array) && count($array)<2)) return $array;
   
      switch(
$method) {
         case 
"STRING":
            
$cmpf create_function(
               
'$a,$b',
               
'if($a["'.$key.'"]==$b["'.$key.'"]) return 0; return '.(strtolower($order)=="desc"?"!":"").'strcasecmp($a["'.$key.'"],$b["'.$key.'"]);' // strcasecmp utf incorrect!
            
);
         break;
         case 
"INT":
            
$cmpf create_function(
               
'$a,$b',
               
'if(intval($a["'.$key.'"])==intval($b["'.$key.'"])) return 0; else return intval($a["'.$key.'"])'.(strtolower($order)=="desc"?"<":">").'intval($b["'.$key.'"])?1:-1;'
            
);
         break;
         default: 
// default is FLOAT
            
$cmpf create_function(
               
'$a,$b',
               
'if(floatval($a["'.$key.'"])==floatval($b["'.$key.'"])) return 0; else return floatval($a["'.$key.'"])'.(strtolower($order)=="desc"?"<":">").'floatval($b["'.$key.'"])?1:-1;'
            
);
         break;
      }
   
      if(!
$maintain_index) {

         
$half floor(count($array)/2); 
         
$array1 array_slice($array0$half); 
         
$array2 array_slice($array$half); 
         
$array1 self::SortArrayByKey($array1,$key,$order,$maintain_index,$method); 
         
$array2 self::SortArrayByKey($array2,$key,$order,$maintain_index,$method); 
         if (
$cmpf($array1[count($array1)-1], $array2[0]) < 1) { 
             
$array array_merge($array1$array2); 
             return 
$array
         } 
         
$array=array(); $i1=0$i2=0
         while (
$i1 count($array1) && $i2 count($array2)) { 
             if (
$cmpf($array1[$i1], $array2[$i2]) < 1$array[] = $array1[$i1++]; 
             else 
$array[] = $array2[$i2++]; 
         } 
         while (
$i1 count($array1)) $array[] = $array1[$i1++]; 
         while (
$i2 count($array2)) $array[] = $array2[$i2++]; 
         return 
$array;

      } else {
      
         
$half floor(count($array)/2); 
         
$array1 array_slice($array0$halftrue); 
         
$array2 array_slice($array$half, (count($array)-$half), true); 
         
$array1 self::SortArrayByKey($array1,$key,$order,$maintain_index,$method); 
         
$array2 self::SortArrayByKey($array2,$key,$order,$maintain_index,$method);
         
$keys1 array_keys($array1);
         
$keys2 array_keys($array2);
         if (
$cmpf($array1[$keys1[count($keys1)-1]], $array2[$keys2[0]]) < 1) { 
             
$array array_merge($array1$array2); 
             return 
$array
         } 
         
$array=array(); $i1=0$i2=0
         while (
$i1 count($keys1) && $i2 count($keys2)) { 
             if (
$cmpf($array1[$keys1[$i1]], $array2[$keys2[$i2]]) < 1) { 
                 
$array[$keys1[$i1]] = $array1[$keys1[$i1]]; $i1++;
             } else { 
                 
$array[$keys2[$i2]] = $array2[$keys2[$i2]]; $i2++;
             } 
         } 
         while (
$i1 count($keys1)) {
            
$array[$keys1[$i1]] = $array1[$keys1[$i1]]; $i1++;
         }
         while (
$i2 count($keys2)) {
            
$array[$keys2[$i2]] = $array2[$keys2[$i2]]; $i2++;
         }
         return 
$array;
      
      }
      
   } 

}
 
michael kors outlet
coach outlet
polo ralph lauren
fred perry polo shirts
coach outlet
moncler jackets
clarks shoes
oakley sunglasses
polo shirts
oakley sunglasses wholesale
kate spade outlet
pandora jewelry
gucci outlet
canada goose jackets
pandora jewelry
canada goose jackets
rolex watches
adidas yeezy shoes
michael kors outlet
coach factory outlet
ray ban sunglasses
pandora outlet
valentino outlet
michael kors outlet
pandora charm
canada goose outlet
birkenstock shoes
oakley sunglasses
uggs canada
coach outlet
adidas nmd shoes
moncler outlet
polo ralph lauren
christian louboutin outlet
moncler outlet
canada goose outlet
ugg outlet
kate spade outlet
polo ralph lauren
cheap nfl jerseys
coach outlet
vibram fivefingers
giuseppe zanotti outlet
michael kors handbags
michael kors outlet
coach outlet
coach outlet online
mont blanc pens
uggs outlet
michael kors handbags
ray ban outlet
giuseppe zanotti outlet
coach outlet online
pandora outlet
nike shoes
cheap oakley sunglasses
coach outlet
coach outlet
ugg outlet
mbt shoes
canada goose outlet
ferragamo shoes
uggs outlet
kate spade outlet
coach outlet store online
michael kors outlet
nike outlet
nfl jerseys wholesale
michael kors outlet
christian louboutin outlet
ralph lauren shirts
asics running shoes
adidas outlet
pandora jewelry
pandora charms
kate spade outlet
polo outlet
true religion outlet
christian louboutin outlet
pandora outlet
canada goose jackets
ralph lauren outlet
pandora outlet
ugg boots
cheap ugg boots
fred perry polo shirts
coach outlet
polo ralph lauren
nfl jerseys wholesale
vans shoes
michael kors outlet clearance
canada goose outlet
cheap mlb jerseys
cheap ugg boots
nfl jerseys wholesale
moncler outlet
pandora jewelry
fitflops sale clearance
michael kors outlet
michael kors outlet
christian louboutin shoes
mcm outlet
coach factory outlet
michael kors outlet
canada goose
kate spade outlet
coach factory outlet
ralph lauren polo
canada goose jackets
polo outlet
michael kors outlet
coach outlet
polo outlet
nfl jerseys wholesale
michael kors handbags
coach outlet
true religion jeans
ugg outlet
air max 2017
ralph lauren outlet
polo ralph lauren
christian louboutin outlet
christian louboutin outletyaoxuemei20180811
Страницы: 1
Ответить
Читают тему (гостей: 1)
Форма ответов
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Загрузить файлы
Отправить Отменить