- Модуль: highloadblock
- Путь к файлу: ~/bitrix/modules/highloadblock/classes/general/cusertypehlblock.php
- Класс: CUserTypeHlblock
- Вызов: CUserTypeHlblock::getHlRows
static function getHlRows($userfield, $clearValues = false): array
{
global $USER_FIELD_MANAGER;
$rows = array();
$hlblock_id = (int)$userfield['SETTINGS']['HLBLOCK_ID'];
$hlfield_id = (int)$userfield['SETTINGS']['HLFIELD_ID'];
if ($hlfield_id <= 0)
{
$hlfield_id = 0;
}
if (!empty($hlblock_id))
{
$hlblock = BitrixHighloadblockHighloadBlockTable::getById($hlblock_id)->fetch();
}
if (!empty($hlblock))
{
$userfield = null;
if ($hlfield_id > 0)
{
$iterator = MainUserFieldTable::getList([
'select' => [
'*',
],
'filter' => [
'=ENTITY_ID' => HighloadBlockTable::compileEntityId($hlblock['ID']),
'=ID' => $hlfield_id,
],
]);
$row = $iterator->fetch();
unset($iterator);
if (!empty($row))
{
$row['USER_TYPE'] = $USER_FIELD_MANAGER->GetUserType($row['USER_TYPE_ID']);
$userfield = $row;
}
else
{
$hlfield_id = 0;
}
}
if ($hlfield_id == 0)
{
$userfield = array('FIELD_NAME' => 'ID');
}
if ($userfield)
{
// validated successfully. get data
$hlDataClass = BitrixHighloadblockHighloadBlockTable::compileEntity($hlblock)->getDataClass();
$rows = $hlDataClass::getList(array(
'select' => array('ID', $userfield['FIELD_NAME']),
'order' => 'ID'
))->fetchAll();
foreach ($rows as &$row)
{
$row['ID'] = (int)$row['ID'];
if ($userfield['FIELD_NAME'] == 'ID')
{
$row['VALUE'] = $row['ID'];
}
else
{
//see #0088117
if ($userfield['USER_TYPE_ID'] != 'enumeration' && $clearValues)
{
$row['VALUE'] = $row[$userfield['FIELD_NAME']];
}
else
{
$row['VALUE'] = $USER_FIELD_MANAGER->getListView($userfield, $row[$userfield['FIELD_NAME']]);
}
$row['VALUE'] .= ' ['.$row['ID'].']';
}
}
}
}
return $rows;
}