Битрикс API — разные типы свойств

В данной небольшой заметке вы увидите общий принцип работы со свойствами и их типами при помощи кода.

Как получить по ID элемента свойство и вывести их значения в Битриксе

Каждое свойство имеет не только ID и VALUE, но и множество других полезных параметров. Общий код выглядит так:

if (!empty($_GET['props'])) {
	$arProps = explode(',', $_GET['props']);
	$arr = array();
	foreach ($arProps as $key => $value) {
		$res = CIBlockElement::GetProperty($totalArr['fields']['IBLOCK_ID'], $totalArr['fields']['ID'], "sort", "asc", array("ID" => $value));
		if ($ob = $res->GetNext()) {

			$propVal = false;

			// html
			if ($ob['USER_TYPE'] == 'HTML' && $ob['VALUE']['TEXT']) {
				$var = $ob['VALUE']['TEXT'];
				$var = str_replace('"', "'", $var);
				$propVal = iconv('cp1251', 'utf-8', $var);
			}

			// string
			elseif ($ob['PROPERTY_TYPE'] == 'S' && $ob['VALUE']) {
				$var = $ob['VALUE'];
				$var = str_replace('"', "'", $var);
				$propVal = iconv('cp1251', 'utf-8', $var);
			}

			// file
			elseif ($ob['PROPERTY_TYPE'] == 'F' && $ob['VALUE']) {
				$propVal = CFile::GetPath($ob['VALUE']);
			}

			// list
			elseif ($ob['PROPERTY_TYPE'] == 'L' && $ob['VALUE_ENUM']) {
				$var = $ob['VALUE_ENUM'];
				$var = str_replace('"', "'", $var);
				$propVal = iconv('cp1251', 'utf-8', $var);
			}

			if ($propVal != false) {
				$arr[$ob['CODE']] = $propVal;
			}
		}
	}
}

Используем CIBlockElement::GetProperty , разделяем каждое свойство по его типу, а именно PROPERTY_TYPE .

В данном примере рассматриваем Как получить значения свойства по ID элемента, а это значит, чтобы получить нужный нам массив с парами «ключ => значение», необходимо указать ID инфоблока и ID элемента.
$totalArr[‘fields’][‘IBLOCK_ID’] — замените на ваш IBLOCK_ID
$totalArr[‘fields’][‘ID’] — заменить на ваш ID элемента

Пример разработан для кодировки 1251.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *