• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/prop_element_list.php
  • Класс: CIBlockPropertyElementList
  • Вызов: CIBlockPropertyElementList::getItemsForUiFilter
static function getItemsForUiFilter($arProperty)
{
	$items = array();
	$settings = CIBlockPropertyElementList::PrepareSettings($arProperty);

	if ($settings["group"] === "Y")
	{
		$arElements = CIBlockPropertyElementList::GetElements($arProperty["LINK_IBLOCK_ID"]);
		$arTree = CIBlockPropertyElementList::GetSections($arProperty["LINK_IBLOCK_ID"]);
		foreach ($arElements as $i => $arElement)
		{
			if(
				$arElement["IN_SECTIONS"] == "Y"
				&& array_key_exists($arElement["IBLOCK_SECTION_ID"], $arTree)
			)
			{
				$arTree[$arElement["IBLOCK_SECTION_ID"]]["E"][] = $arElement;
				unset($arElements[$i]);
			}
		}

		// todo add  for ui filter
		foreach ($arTree as $arSection)
		{
			if (isset($arSection["E"]))
			{
				foreach ($arSection["E"] as $arItem)
				{
					$items[$arItem["ID"]] = $arItem["NAME"];
				}
			}
		}
		foreach ($arElements as $arItem)
		{
			$items[$arItem["ID"]] = $arItem["NAME"];
		}

	}
	else
	{
		foreach (CIBlockPropertyElementList::GetElements($arProperty["LINK_IBLOCK_ID"]) as $arItem)
		{
			$items[$arItem["ID"]] = $arItem["NAME"];
		}
	}

	return $items;
}