- Модуль: 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);
}