В данной небольшой заметке вы увидите общий принцип работы со свойствами и их типами при помощи кода.
Как получить по 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.