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

Организационная структура

00 голосов
5
На сайте сделана Организационная структура таким образом : Подразделения хранятся в iblock_Section с iblock_id = 52 для каждого подразделения указана своя уникальная сортировка
Люди хранятся в iblock_Element с iblock_id = 52 и также имеют свойства (iblock_element_property) должность (POST) которая храниться с привязкой к iblock_Element с iblock_id = 93 у которой тоже есть своя уникальная сортировка .
Можно ли сделать вывод людей что бы они сортировались вначале по сортировки подразделений потом по сортировки должности ну и потом по имени человека ?
Штудировал матчасть Битрикса, но кроме как прямых запросов к MySQL по типу
Код
$kol = 3;
$query = "SELECT *FROM  `b_iblock_section` ,  `b_iblock_element` 
WHERE  `b_iblock_section`.`IBLOCK_ID` =52
AND  `b_iblock_element`.`WF_PARENT_ELEMENT_ID` IS NULL
AND  `b_iblock_element`.`ACTIVE` =  'Y'
AND  `b_iblock_section`.`ACTIVE` =  'Y'
AND  `b_iblock_section`.`ID` =  `b_iblock_element`.`IBLOCK_SECTION_ID`
ORDER BY  `b_iblock_section`.`SORT` ASC 
LIMIT 0 , $kol";

решение не вижу
Или выбрать вначале подразделения записать это все в массив в виде id=>sort потом выбрать всех людей с order_by name=>asc записать в массив а также еще и выбрать все должности и записать в массив, потом через foreach выстроить массив людей по этим всем сортировкам и в соответствии с порядковым номером обновить сортировку людей , и просто выводить по сортировки людей )
Цитата
CIBlockElement::GetList(Array("SORT"=>"ASC"), Array('IBLOCK_ID'=>52,'CLOBAL_ACTIVE'=>'Y'), false);
спросил 13 Дек, 13 от W3ID3R (120 баллов)

5 Ответы

00 голосов
все замечания принимаются на ура :!:
может есть гуру битрикса который укажет на нужное направление в организации построения данной структуры :?:
ответил 20 Фев, 14 от W3ID3R (120 баллов)
00 голосов
CIBlockSection::GetList и CIBlockElement::GetList Вам в помощь. Сначала выбираете разделы с сортировкой во внутреннем цикле элементы.
ответил 11 Июнь, 14 от Run (1,300 баллов)
00 голосов
спасибо за ответ хорошее решение , но как в данном случаи сделать постраничную навигацию скажем по 10 элементов на страницу ?
ответил 10 Окт, 14 от W3ID3R (120 баллов)
00 голосов
-----удалено------
ответил 10 Фев, 15 от W3ID3R (120 баллов)
00 голосов
Дмитрий Шкуркин
Вы посоветовали использовать CIBlockSection::GetList и CIBlockElement::GetList
а не подскажите как использовать .. а то я и так и этак
но все не то - да не так, не могу понять как связать CIBlockSection и CIBlockElement
и как сделать постраничную навигацию
если делать так
Код
$res = CIBlockElement::GetList(false, $arFilterElement, $arSelect);
/* Постраничная навигация */
$res->NavStart(5);

ограничивать элементы нельзя, так как их все нужно перебрать что бы выстроить в нужном порядке
если так
Код
$res = CIBlockSection::GetList(false, $arFilterElement, $arSelect);
/* Постраничная навигация */
$res->NavStart(5);

если ограничивать Section получится анархия элементов так как в разделе их может быть n_ное кол-во.

подскажите как сделать постраничную навигацию используя отсортированные елементы ?
ответил 22 Май, 15 от W3ID3R (120 баллов)

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

0 голосов
0 ответов
спросил 30 Дек, 13 от VaNesa (180 баллов)