Не раз приходилось сталкиваться с задачей, когда нужно было вывести свойство инфоблока через 1с-Битрикс API. Рассмотрим такой пример : имеется инфоблок с различными футболками , задача – вывести название футболки и ткань , из которой она сделана.
Инфоблок с футболками имеет >
и требуется вывести свойство с символьным кодом = «TKAN»(рис.2).
Вот что у меня получилось:
Главный наш помощник в получении результата функция битрикс API — CIBlockElement::GetList.
$arSort — отвечает за сортировку. Значение ‘NAME’ => ‘ASC’ означает сортировать по имени по возрастанию.
$arSelect — массив возвращаемых полей элемента. В нашем случае доступны:
Этот список можно пополнить другими свойствами.
$arFilter – нужен для фильтрации элементов. $arFilter = Array(‘IBLOCK_ID’=> 5) означает, что из всех элементов хранимых в инфоблоках сайта, мы выбираем только те, которые находятся в инфоблоке с >
- $arFilter = Array(‘PROPERTY_ TKAN ‘=> ‘шерсть’) – все элементы, у которых параметр ткань = шерсть.
- $arFilter = Array(‘SECTION_ID’ => 55) – все элементы, которые лежат в папке с >Осталось лишь вывести информацию. Для этого используем цикл while с функцией GetNextElement() .И в результате применения функции GetFields() в массиве $arFields будут храниться отобранные по фильтру футболки со свойствами, добавленными в массив $arSelect .
Когда вы используете API в CMS Битрикс, очень часто вы не видите всех значений у свойства список. Или же, вы видите в цикле один и тот же товар, и сразу несколько выбранных значений, что тоже не очень удобно.
Как вывести все значения у множественного типа Список в Битриксе
В данном примере речь пойдет именно о множественном свойстве, с обычными свойствами таких проблем не возникает обычно. Что говорит нам документация для метода CIBlockElement::GetProperty :
Давайте немного изменим код во 2 строке, чтобы было более понятнее:
Вот, теперь более понятно. Первый параметр ID инфоблока, затем ID элемента, далее массив с сортировкой и наконец самый важный параметр — массив с фильтром.
Выбирать можно не только по символьному коду свойства, еще есть такие вот варианты:
Рассмотрим код немного сложнее. Сразу скажу, что он не претендует на премию «вау, как круто написано» :).
Чуть ниже я объясню что мы делаем и зачем:
У нас есть инфоблок с заполненными названиями и картинками, в моем случае это цвет автомобиля.
Тут внимательней, можно легко запутаться. $ob[‘DESCRIPTION’] — описание для картинки товара, и по этому описанию ищем элемент, который подходит по имени — «NAME» => $ob[‘DESCRIPTION’].
Дальше проще, используем CFile::GetPath — уже знакомую вам из данной статьи.
Ссылка на документацию для самых опытных и любопытных: https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getproperty.php
автор: Dmitriy
Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.
Какие услуги предоставляю:
— Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
— Разработка функционала с нуля и доработка кода на уже созданных проектах;
— Адаптивная вёрстка макетов и натяжка на Битрикс;
— Парсинг файлов и выгрузка на сайт (форматы — CSV, XML, XLSX, JSON)
— Интеграции со сторонними сервисами по API;
— Многоязычные версии и многое другое.
Получение полей и свойств элемента по его pubdate> 20.04.2014
Чтобы вывести поля и свойства элемента по ID необходимо воспользоваться следующим кодом:
Комментарии (2)
Куда этот код вставлять то?
Туда, где будет вызываться свойство. Например, в шаблон компонента.