Варианты значений свойств типа "Список"

Ноябрь 23, 2017

Теги: Инфоблоки, ORM

Работа с вариантами значений свойств типа "Список" средствами класса "\Bitrix\Iblock\PropertyEnumerationTable".

Выбрать все варианты значений свойства типа список с идентификатором 10:


$rsEnum = \Bitrix\Iblock\PropertyEnumerationTable::getList(array(

    
'filter' => array('PROPERTY_ID'=>10),
));
while(
$arEnum=$rsEnum->fetch())
{
    
print_r($arEnum);
}

Создать массив для конвертации из ID в XML_ID и обратно для всех свойств типа "Список" в инфоблоке с идентификатором 8:


$arEnumID = Array();

$arEnumXmlID = Array();

$rsProperty = \Bitrix\Iblock\PropertyTable::getList(array(
    
'filter' => array('IBLOCK_ID'=>8,'=PROPERTY_TYPE'=>'L'),
    
'select' => array('ID','CODE'),
));
        
while(
$arProperty=$rsProperty->fetch())
{
    
$arEnumID[$arProperty["CODE"]] = array();
    
$arEnumXmlID[$arProperty["CODE"]] = array();
    
$rsEnum = \Bitrix\Iblock\PropertyEnumerationTable::getList(array(
        
'filter' => array('PROPERTY_ID'=>$arProperty['ID']),
    ));
    while(
$arEnum=$rsEnum->fetch())
    {
        
$arEnumID[$arProperty["CODE"]][$arEnum["XML_ID"]] = $arEnum["ID"];
        
$arEnumXmlID[$arProperty["CODE"]][$arEnum["ID"]] = $arEnum["XML_ID"];
    }
}

Пример результата для предыдущего примера (type - символьный код свойства):


$arEnumID = Array

(
    [
type] => Array
        (
            [
price-drop] => 47
            
[version-update] => 48
        
)
)

$arEnumXmlID = Array
(
    [
type] => Array
        (
            [
47] => price-drop
            
[48] => version-update
        
)
)

← Переход к списку