Есть инфоблок. Необходимо вывести все разделы и подразделы,если у подразделовтоже есть подразделы вывести и их ну и соответственно выводить еще и элементы этих подразделов.
Помогите,пожалуйста!
Помогите,пожалуйста!
27.12.2011 09:40:23
CIBlockElement::GetList тебе в помощь
|
|
|
|
27.12.2011 11:25:53
Так в цыкле используйте CIBlockElement::GetList с фильтром по SECTION_ID.
|
|||
|
|
27.12.2011 11:52:58
что-то не то ..там в массиве каике-то переменные, типа название бд,пароль к бд и еще куча,а то что надо нет
|
|
|
|
27.12.2011 12:47:46
Чтобы правильно использовать CIBlockElement::GetList посмотрите документацию:
Надо смотреть не массив $arRes, а, например, $arFields, то есть:
|
|||
|
|
27.12.2011 13:25:22
спасибо за ответ. еще вопрос: а как вывести значение свойств для каждого элемента,вроде в массиве arFields этого нет ? |
|
|
|
27.12.2011 13:27:05
пишите нужные свойства в $arSelect
|
|
|
|
27.12.2011 13:34:08
Свойства можно также вывести с помощью GetProperties(), например:
|
|||
|
|
27.12.2011 13:38:34
Владимир Спасенников, ну как я поняла, ему именно в результате выборки гетлистом хочется видеть значения свойств элементов.
К чему масло-то масленое городить? |
|
|
|
16.02.2012 21:24:06
"Не нравится - критикуй, критикуешь - предлагай, предлагаешь - делай, делаешь - отвечай."
Сергей Павлович Королёв |
|||||
|
|
27.08.2013 20:14:20
если у вас 100 секций, у вас будет 100 ГетЛистов (а если у элементов куча свойств, то это 100 запросов с кучей джойнов, это если ещё без всяких документооборотов и учёта прав групп). делайте так сначала собирайте все айдишники секций в отдельный массив, потом этот массив айдишников передавайте в отдельный GetList где в фильтр по SECTION_ID передавайте полученный массив с айдишниками секций. В $arSelect укажите чтобы в числе прочего вам вернулся SECTION_ID элемента (таким образом в дальнейшем проще будет привязывать элементы к разделам). чем лучше этот подход от подхода предложенного Сергеем - мы делаем один лишний GetList, вместо нескольких. надеюсь достаточно понятно изъяснился ) как отсортировать элементы я думаю уже сами сообразите. |
|||||
|
|
07.07.2014 22:55:54
Я вывел элементы с подразделами как заголовки таким образом
|
|||
|
|
08.07.2014 01:16:35
Можно же в настройках компонента выводящего информацию указать это в явном виде. В документации смотрите параметр. Я недавно пытался вывести элементы корневого раздела, а у него нет ID, нашел параметр, который позволяет вывести все элементы, если ID раздела не указан, там рядом находилось то что вам нужно. Компонент catalog.section
|
|
|
|
16.06.2016 15:00:53
У меня не выводился один и тот же инфоблок, который был указан в другом компоненте - на этой же странице. Такое возможно?
|
|
|
|
10.07.2018 17:20:47
<?
CModule::IncludeModule("iblock"); $rs_Section = CIBlockSection::GetList(array('left_margin' => 'asc'), array('IBLOCK_ID' => $arResult["ID"])); while ( $ar_Section = $rs_Section->Fetch() ) { $ar_Result[] = array( 'ID' => $ar_Section['ID'], 'NAME' => $ar_Section['NAME'], 'IBLOCK_SECTION_ID' => $ar_Section['IBLOCK_SECTION_ID'], 'IBLOCK_SECTION_ID' => $ar_Section['IBLOCK_SECTION_ID'], 'LEFT_MARGIN' => $ar_Section['LEFT_MARGIN'], 'RIGHT_MARGIN' => $ar_Section['RIGHT_MARGIN'], 'DEPTH_LEVEL' => $ar_Section['DEPTH_LEVEL'], ); }?> <select> <option> - Выбрать - </option> <?foreach( $ar_Result as $ar_Value ){?> <? $arSelect = Array("ID", "NAME", "PROPERTY_STAH"); $arFilter = Array("IBLOCK_ID"=>$arResult["ID"], "SECTION_ID"=>$ar_Value['ID']); $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect); ?> <?echo '<option value="">'.$ar_Value["NAME"].'</option>';?> <?while($ob = $res->GetNextElement()) { $arFields = $ob->GetFields(); echo '<option value="">•'.$arFields["NAME"].'</option>'; }?> <?}?> </select> |
|
|
|
16.05.2022 10:41:47
Добрый день!
Подскажите пожалуйста как выводить иерархию департаментов (каталогов) по указанному разделу? То есть, мне нужно вывести цепочку отделов в которых находится сотрудник. я делаю так, но выводится только один отдел тот в котором находится сотрудник
|
||||
|
|
|||