• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblockelement.php
  • Класс: CAllIBlockElement
  • Вызов: CAllIBlockElement::getPropertiesByFilter
protected function getPropertiesByFilter(array $filter): ?array
{
	$result = array();
	$iterator = IblockPropertyTable::getList(array(
		'select' => array(
			'ID', 'IBLOCK_ID', 'NAME', 'SORT', 'MULTIPLE', 'WITH_DESCRIPTION',
			'PROPERTY_TYPE', 'USER_TYPE', 'USER_TYPE_SETTINGS_LIST', 'LINK_IBLOCK_ID'
		),
		'filter' => $filter,
		'order' => array('SORT' => 'ASC', 'ID' => 'ASC'),
		'cache' => array('ttl' => 86400)
	));
	while ($row = $iterator->fetch())
	{
		$row['USER_TYPE'] = (string)$row['USER_TYPE'];
		if (!is_array($row['USER_TYPE_SETTINGS_LIST']))
		{
			$row['USER_TYPE_SETTINGS_LIST'] = null;
		}
		$row['USER_TYPE_SETTINGS'] = $row['USER_TYPE_SETTINGS_LIST'];
		unset($row['USER_TYPE_SETTINGS_LIST']);
		if ($row['USER_TYPE'] != '')
		{
			$userType = CIBlockProperty::GetUserType($row['USER_TYPE']);
			if (isset($userType['GetSearchContent']))
			{
				$row['GetSearchContent'] = $userType['GetSearchContent'];
			}
			elseif (isset($userType['GetPublicViewHTML']))
			{
				$row['GetSearchContent'] = $userType['GetPublicViewHTML'];
			}
		}
		$result[$row['ID']] = $row;
	}
	return (!empty($result) ? $result : null);
}