Документация для разработчиков
Темная тема

GetList

Описание

CDBResult CIBlockPropertyEnum::GetList(
	array arOrder = Array("SORT"=>"ASC", "VALUE"=>"ASC"),
	array arFilter = Array()
);

Возвращает список вариантов значений свойств типа "список" по фильтру arFilter отсортированные в порядке arOrder. Метод статический.

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

Параметры вызова

ПараметрОписание
arOrder Массив для сортировки, имеющий вид by1=>order1[, by2=>order2 [, ..]], где
by
- поле сортировки, может принимать значения:
  • id - код варианта значения;
  • value - значение варианта;
  • sort - индекс сортировки варианта;
  • xml_id или external_id - внешний код варианта значения;
  • def - по признаку "значение по умолчанию";
  • property_id - код свойства;
  • property_sort - индекс сортировки свойства;
  • property_code - символьный код свойства;
order - порядок сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
arFilter Массив вида array("фильтруемое поле"=>"значение" [, ...])
"фильтруемое поле" может принимать значения:
  • VALUE - по значению (по шаблону [%_]);
  • ID - по коду значения варианта свойства;
  • SORT - по индексу сортировки варианта свойства;
  • DEF - по параметру "значение по умолчанию" (Y|N);
  • XML_ID - по внешнему коду(по шаблону [%_]);
  • EXTERNAL_ID - по внешнему коду;
  • CODE - по символьному коду свойства (по шаблону [%_]);
  • PROPERTY_ID - по числовому или символьному коду свойства;
  • IBLOCK_ID - фильтр по коду информационного блока, которому принадлежит свойство;
Необязательное. По умолчанию записи не фильтруются.

Примеры использования

<?
$property_enums = CIBlockPropertyEnum::GetList(Array("DEF"=>"DESC", "SORT"=>"ASC"), Array("IBLOCK_ID"=>$IBLOCK_ID, "CODE"=>"COLORS"));
while($enum_fields = $property_enums->GetNext())
{
	echo $enum_fields["ID"]." - ".$enum_fields["VALUE"]."<br>";
}
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Александр Артамонов
Сообщение не промодерировано, возможны ошибки и неточности.
Код
function getPropertyValueId(int $propertyId, $value): int
{
    static $cachka;
    $value = trim(mb_strtolower($value));
    if(!$value){
        return 0;
    }
    if(empty($cachka)){
        $property_enums = CIBlockPropertyEnum::GetList([], ['IBLOCK_ID'=>16]);
        while($enum_fields = $property_enums->Fetch())
        {
            if(!isset($cachka[(int)$enum_fields['PROPERTY_ID']][trim(mb_strtolower($enum_fields['VALUE']))])){
                $cachka[(int)$enum_fields['PROPERTY_ID']][trim(mb_strtolower($enum_fields['VALUE']))] = (int)$enum_fields['ID'];
            }
        }
    }
    if(empty($cachka[$propertyId])){
        return 0;
    }
    if(!$cachka[$propertyId][$value]){
        return 0;
    }
    return $cachka[$propertyId][$value];
}
1
Artem Koorochka
Цитата
Если несколько размеров в инфоблоке, бывает нужна выборка по коду, например все не женские размеры (с кодом не начинающимся на WOMEN)
Код
$sizes = CIBlockPropertyEnum::GetList([],[
    "IBLOCK_ID" => 1,
    "!CODE" => "WOMEN_%"
]);
while ($size = $sizes->Fetch()){
    echo $size["ID"]." - ".$size["VALUE"]."<br>";
}
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх