1С-Битрикс. Выводим свойства элементов в инфоблоке

Alexander K.
1С-Bitrix
15.09.2017
126
Информационный блок (он же "Инфоблок") - ключевой модуль для Битрикса, позволяющий хранить, обрабатывать и выводить огромные массивы данных. Разработчики CMS постарались сделать работу с ним очень простой и не требующей каких-либо глубоких знаний самой системы.

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

Для хранения данных, в зависимости от типа компонента, используются разные переменные:
  • Если необходимо вывести свойство в компоненте "Список новостей" - $arItem
  • Если выводим свойство в компоненте "Детальная страница" - $arResult

Стандартные свойства элемента

Для начала разберём стандартные свойства элементов, которые работают "из коробки". Посмотреть их можно в шаблоне компонентов "Новости", "Список новостей" или "Детальная страница". Ниже представлен перечень основных свойств:
<?
echo $arItem["ID"]; // ID элемента
echo $arItem["NAME"]; // Название (заголовок) элемента
echo $arItem["ACTIVE_FROM"]; // Дата и время начала активности элемента
echo $arItem["DISPLAY_ACTIVE_FROM"]; // Только дата начала активности
echo $arItem["LIST_PAGE_URL"]; // Ссылка на страницу со списком элементов
echo $arItem["DETAIL_PAGE_URL"]; // Ссылка на детальную страницу элемента
echo $arItem["PREVIEW_TEXT"]; // Превью текст элемента
echo $arItem["DETAIL_TEXT"]; // Детальный текст элемента
echo $arItem["PREVIEW_PICTURE"]; // Ссылка на картинку превью
?>
Также есть возможность вывести дополнительные свойства. Для этого в настройках вывода компонента во вкладке "Источник данных" находим строчку "Поля" и выбираем нужные свойства. Ниже приведён список самых часто используемых:
<?
echo $arItem["IBLOCK_ID"]; // ID инфорблока, где хранится элемент
echo $arItem["CODE"]; // Символьный код элемента
echo $arItem["XML_ID"]; // Внешний код элемента
echo $arItem["TAGS"]; // Список тегов элемента
echo $arItem["CREATED_BY"]; // Кем создан элемент - ID пользователя
echo $arItem["CREATED_USER_NAME"]; // Кем создан элемент - логин и имя пользователя
echo $arItem["SHOW_COUNTER"]; // Количество просмотров элемента
echo $arItem["DETAIL_PICTURE"]; // Ссылка на детальная картинка
echo $arItem["DATE_ACTIVE_TO"]; // Дата завершения активности элемента
?>
Теперь перейдем к пользовательским свойствам.
Перед выводом их значений на страницу, необходимо эти свойства создать. Для этого нужно перейти в настройки инфоблока.
Битрикс
Во вкладке "Свойства" вводим название, выбираем тип будущего свойства, определяем символьный код, проводим более тонкие настройки (для некоторых свойств это критично).

Пользовательские свойства элемента

У нас есть созданный ранее инфоблок, мы создали несколько свойств с различными типами данных. Теперь сосредоточимся на их выводе на странице сайта. Ключевая задача - вывести свойства по отдельности. Для этого необходимо зайти в настройки компонента ("Новости", "Список новостей" или "Детальная страница") и в графе "Свойства" выбрать все те свойства, которые собираетесь выводить на страницу. После этого нажимаем кнопку "Сохранить" и переходим во вкладку "Редактировать шаблон компонента"

Теперь необходимо вызвать нужные нам свойства в нужных местах страницы. В зависимости от типа используемого компонента ("Список новостей" или "Детальная страница") это делается немного по разному.

Для компонента "Список новостей"

Для вывода свойств типа Текст, Число, Список, Привязка элементов, Дата и т.д. в нужном месте страницы вставляем вот этот код:
<?=$arItem["PROPERTIES"]["код_свойства"]["VALUE"];?> // или
<?echo $arItem["DISPLAY_PROPERTIES"]["код_свойства"]["DISPLAY_VALUE"];?>
Если необходимо вывести свойство типа TEXT/HTML:
<?=$arItem["PROPERTIES"]["код_свойства"]["VALUE"]["TEXT"];?> // просто текст
<?=$arItem["PROPERTIES"]["код_свойства"]["~VALUE"]["TEXT"];?> // или формат html

Для компонента "Детальное описание"

Для вывода свойств типа Текст, Число, Список, Привязка элементов, Дата и т.д. в нужном месте страницы вставляем вот этот код:
<?=$arResult["PROPERTIES"]["код_свойства"]["VALUE"];?> // или
<?echo $arResult["PROPERTIES"]["код_свойства"]["VALUE"];?>
Часто необходима проверка свойства на наличие в нём значения. Делается это следующим образом:
<?if($arItem["PROPERTIES"]["код_свойства"]["VALUE"]):?> 
   <?echo $arItem["PROPERTIES"]["код_свойства"]["VALUE"];?>
<?endif;?>

// или

<?if($arResult["DISPLAY_PROPERTIES"]["код_свойства"]["VALUE"]):?>
   <?=$arResult["DISPLAY_PROPERTIES"]["код_свойства"]["VALUE"]?>
<?endif?> 

Множественное свойство

При наличии множественного свойства с несколькими заполненными полями, поле ["VALUE"] становится массивом. Код для вывода одного значения будет выглядеть так:
<?echo $arItem["PROPERTIES"]["код_свойства"]["VALUE"][порядковый_номер];?>
Если необходимо вывести сразу все элементы массива, то можно поступить следующим образом:
<?foreach($arItem["PROPERTIES"]["код_свойства"]["VALUE"] as $result){
echo $result.'<br>';
};?>