Вывод элементов инфоблока Битрикс

  • 2789
   
Разделы

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


По возможности указываю ссылки на источники.


Копируйте, комментируйте, переделывайте, пользуйтесь. Кому не жалко, оставляйте ссылку на источник.

Частный вебмастер по разработке сайтов на 1С Битрикс и WordPress

Принцип вывода списка элементов инфоблока, такой же, как и вывод разделов. Только использовать надо CIBlockElement::GetList с некоторыми изменениями в параметрах.

Общий вид конструкции вывода разделов инфоблока выглядит следующим образом:

<?php
// подключение модуля ИБ (если не подключен)
CModule::IncludeModule("iblock");

// вывод элементов инфоблока по ИД
$arFilter = array('IBLOCK_ID' => 3, "ACTIVE" => "Y"); // фильтр разделов
$arSelect = array("ID", "NAME", "PICTURE" ); // выбор свойств раздела
$arSort = array('SORT' => 'ASC'); // сортировка разделов
$arNavStart = array("nPageSize" => 5); // количество выводимых разделов
$rsElements = CIBlockElement::GetList($arSort, $arFilter, false, $arNavStart, $arSelect);
while ($arElement = $rsElements->GetNextElement()) {
$arFields = $arElement->GetFields(); ?>
<pre>
<?print_r($arFields);?>
</pre>
<? } ?>

Из всех передаваемых в CIBlockElement::GetList параметров, обязательным является IBLOCK_ID, все остальное можно в виде пустого массива array().

Разберем параметры:

  • $arFilter — фильтрует вывод элементов. В примере выше, конструкция выведет все активные элементы из инфоблока, в том числе и из подразделов. Чтобы вывести элементы раздела. Передаем дополнительно ID раздела.
    $arFilter = array('IBLOCK_ID' => 3, "ACTIVE" => "Y", 'SECTION_ID' => 1); 
  • $arSelect — выбираем только нужные нам свойства, дабы снизить нагрузку на сайт. Если передадите массив этот, пустым, то увидите из каких свойств можно выбрать. Кроме того, можно выбрать дополнительные пользовательские поля.
    $arSelect = array("ID", "NAME", "PICTURE", "PROPERTY_ATT_LINK");
  • $arSort – сортировка выводимых элементов. Передаете свойство, по которому производится сортировка. asc - по возрастанию, desc - по убыванию.
  • $arNavStart – ограничивает количество выводимых элементов

Для вывода отдельного элемента инфоблока, применяем CIBlockElement::GetByID

<?
// подключение модуля ИБ (если не подключен)
CModule::IncludeModule("iblock");

// вывод информации из определенного раздела
$res = CIBlockElement::GetByID(1);
if($ar_res = $res->GetNext()){ ?>
<pre>
<?print_r($ar_res);?>
</pre>
<? } ?>

Рабочий пример применения

 <?$arFilter = Array("IBLOCK_ID"=>6, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y","ID" => 326);         // вывести определенный элемент
//$arFilter = Array("IBLOCK_ID"=>6, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y"); // вывести все элементы инфоблока
//$arFilter = Array("IBLOCK_ID"=>6, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y","SECTION_ID" => 2); // вывести все определенного раздела
$arSelect = Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM","PROPERTY_*"); //IBLOCK_ID и ID обязательно должны быть
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect);
while($ob = $res->GetNextElement()){
$arFields = $ob->GetFields(); // основные поля
$arProps = $ob->GetProperties(); // доп свойства
?>
<pre>
<? print_r($arFields); ?>
<? print_r($arProps); ?>
</pre>
<? } ?>

Подробные описания и примеры применения CIBlockElement::GetList, CIBlockElement::GetByID

Комментарии

Комментарий отправлены на валидацию!