Битрикс 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 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *