Bitrix Getlist

Помимо готовых шаблонов и сниппетов для «1С-Битрикс» его создатели предоставляют широчайший простор для самостоятельного программирования. Это позволяет расширять функционал сайтов, оперативно вносить в существующий код необходимые изменения и решать узкоспециализированные задачи.

При самостоятельном программировании нередко возникает ситуация, когда нужно получить список элементов, находящихся в конкретном информационном блоке. Также может понадобится вывод списка относящихся к этому блоку разделов.

Bitrix Getlist
Приложение

Для этого используется метод GetList который, помимо прочего, используется со следующими классами:

  • CIBlockElement;
  • CIBlockSection.

Обратите внимание! С их помощью можно получить и вывести требуемую информацию.

GetList — что это за метод

В Bitrix GetList является методом, используемым в классе информационного блока. Его применяют для обращения к базе данных с целью получить различную информацию о блоке. Информация может содержать сведенья об элементах, разделах и других параметрах информационного блока.

В «Битрикс» GetList используется очень широко и его можно встретить в различных классах и модулях при разработке. Более подробная информация о всех возможностях использования данного метода изложена в технической документации для разработчиков на официальном сайте платформы.

Bitrix Getlist
Метод GetList, используемый в коде

Bitrix Ciblocksection Getlist

Этот класс предназначен для различных операций с группами или разделами информационного блока. С его помощью можно получить список разделов информационного блока. После получения списка благодаря Bitrix Section Getlist его можно отсортировать, используя Bitrix Getlist Filter.

Bitrix Getlist
Класс Ciblocksection Getlist

Bitrix Ciblockelement Getlist

Класс «Битрикс» Ciblockelement Getlist предназначен для различных операций с одиночными элементами, входящими в информационный блок. С его помощью также можно получить список элементов и их количество для дальнейшей обработки в коде.

В качестве примера вывод названий элементов, входящих в условный информационный блок — «Новости». Первое, что необходимо узнать перед началом программирования — это ID интересующего информационного блока. Наиболее простой способ сделать это — обратиться к URL в адресной строке. Цифра, необходимая для использования в коде, в адресной строке идет сразу после — «IBLOCK_ID=», условно она будет равняться 1.

Чтобы получить и вывести названия элементов, входящих в информационный блок, нужно изменить интересующую страницу в режиме PHP-кодировки. На странице для Getlist Element Bitrix прописывается следующий код:

if(CModule::IncludeModule(“iblock”)){$res=CIBlockElement::GetList(Array(),Array(“IBLOCK_ID”=>1));while($ob=$res>GetNext()){?><pre><?print_r($ob[“NAME«]);?></pre><?}}.

Обратите внимание! В приведенном коде указан лишь один параметр, равный единице и относящийся к «IBLOCK_ID». Если убрать параметр [«NAME»], оставив только $ob, то while выведет намного больше значений исследуемого элемента.

Вывод значений свойства информационного блока

Поскольку информационные блоки в «Битрикс» являются наиболее используемыми модулями, то необходимость вывода значения через Bitrix Iblock становится довольно распространенной задачей. Понадобиться это может в различных ситуациях: от реализации слайдера, до создания различных справочников.

Bitrix Getlist
Вывод значений информационного блока стандартным функционалом

Стандартный функционал, предоставленный в консоли управления, порой не может справиться с поставленной задачей. Это может быть связано с необходимостью вывода нестандартных свойств информационного блока. В таком случае приходит на помощь самостоятельное программирование и «Битрикс» Element Getlist.

Если на сайте создан информационный блок, в котором предусмотрено нестандартное свойство с заданным идентификатором, то его значение выводится при помощи дополнительного кода. В качестве примера подробное описание новости. Для вывода значения необходимого свойства Bitrix Get Element, код которого равен FEATURE, в шаблоне новости прописывается следующий код:

<?=$arResult[“DISPLAY_PROPERTIES”][“FEATURE”][“VALUE”];?>

Для вывода имени требуемого свойства код пишется следующий:

<?=$arResult[“DISPLAY_PROPERTIES”][“FEATURE”][“NAME”];?>

Чтобы выполнить проверку и избежать вывода лишнего кода при незаданном значении элемента, вводится следующая конструкция:

<?if($arResult[“DISPLAY_PROPERTIES”][“FEATURE”]):?><?=$arResult[“DISPLAY_PROPERTIES”][“FEATURE”][“NAME”];?><?=$arResult[“DISPLAY_PROPERTIES”][“FEATURE”][“VALUE«];?><?endif;?>

Бывает, что у информационного блока задается множество различных свойств. Если стоит задача выводить значения этих свойств в различных местах, то стандартные методы «Битрикс» не помогут. По умолчанию эта информация выводится последовательно в цикле, в результате страдает дизайн сайта. Для решения этой проблемы используется аналогия кода, приведенного выше:

<!—первое свойство—><?if($arResult[“DISPLAY_PROPERTIES”][“FEATURE”]):?><divclass=”wrapper-top”><divclass=”wrapper-top-name”><?=$arResult[“DISPLAY_PROPERTIES”][“FEATURE”][“NAME”];?></div><divclass=”wrapper-top-count value”><?=$arResult[“DISPLAY_PROPERTIES”][“FEATURE”][“VALUE”];?></div></div><?endif;?>

<!—второе свойство—><?if($arResult[“DISPLAY_PROPERTIES”][“FEATURE”]):?><divclass=”wrapper-bottom”><divclass=”wrapper-bottom-name”><?=$arResult[“DISPLAY_PROPERTIES”][“FEATURE”][“NAME”];?></div><divclass=”wrapper-bottom-value”><?=$arResult[“DISPLAY_PROPERTIES”][“FEATURE”][“VALUE«];?></div></div><?endif;?>

Важно! В результате информация о первом свойстве будет выведена в разметке выше, а о втором свойстве ниже. Для этого не стоит забывать включать использование необходимых свойств.

Получение списка разделов

Довольно часто на сайте возникает задача получения и вывода списка разделов. В качестве примера можно использовать стандартный компонент «Битрикс» «news.list».

Bitrix Getlist
Создание раздела для информационного блока

Чтобы решить поставленную задачу, нужно использовать следующий код:

<?$infoblock=ХХХ;//Инфоблок с ID ХХХ (необходимо установить ID интересующего инфоблока)$rs_Section=CIBlockSection:etList(array(’left_margin’=>’asc’),array(’IBLOCK_ID’=>$infoblock));while($ar_Section=$rs_Section>Fetch()){$ar_Resu[]=array(//идет сбор массива необходимой информации ’ID’=>$ar_Section[’ID’],//id раздела ’NAME’=>$ar_Section[’NAME’],//имя раздела (что, собственно, интересует)’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’],);print_r($ar_Resu);//проверка того, что собрано в массив }foreach($ar_Resuas$section){echo$section[“NAME”].«”;//вывод полученной информации}?>

Конечно, для реализации в программном коде описанных методов нужны определенные знания в программировании. Однако при наличии таковых или при обращении к соответствующему специалисту «Битрикс» открывает поистине неограниченные возможности в создании сайтов.