- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/rating/internal/action.php
- Класс: BitrixMainRatingInternalAction
- Вызов: Action::list
static function list(array $params = []): array
{
$mailInstalled = ModuleManager::isModuleInstalled('mail');
$extranetInstalled = ModuleManager::isModuleInstalled('extranet');
if ($extranetInstalled)
{
$params['USER_SELECT'] = [ 'UF_DEPARTMENT' ];
}
if ($mailInstalled)
{
$params['USER_FIELDS'] = [
'ID', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'LOGIN',
'PERSONAL_PHOTO', 'EXTERNAL_AUTH_ID',
];
}
$result = CRatings::getRatingVoteList($params);
$voteList = [
'items' => [],
'items_all' => $result['items_all'],
'items_page' => $result['items_page'],
'reactions' => (
isset($result['reactions'])
&& is_array($result['reactions'])
? $result['reactions']
: []
),
'list_page' => $result['list_page'],
];
foreach ($result['items'] as $key => $value)
{
$userVote = [
'USER_ID' => $value['ID'],
'VOTE_VALUE' => $value['VOTE_VALUE'],
'PHOTO' => $value['PHOTO'],
'PHOTO_SRC' => $value['PHOTO_SRC'],
'FULL_NAME' => $value['FULL_NAME'],
'URL' => CComponentEngine::makePathFromTemplate(
$params['PATH_TO_USER_PROFILE'],
[
'UID' => $value['USER_ID'],
'user_id' => $value['USER_ID'],
'USER_ID' => $value['USER_ID'],
],
),
];
if (
$mailInstalled
&& $value['EXTERNAL_AUTH_ID'] === 'email'
)
{
$userVote['USER_TYPE'] = 'mail';
}
elseif (
$extranetInstalled
&& (
empty($value['UF_DEPARTMENT'])
|| (int)$value['UF_DEPARTMENT'][0] <= 0
)
)
{
$userVote['USER_TYPE'] = 'extranet';
}
$voteList['items'][] = $userVote;
}
if ($params['CURRENT_USER_ID'] > 0)
{
$event = new BitrixMainEvent(
'main',
'onRatingListViewed',
[
'entityTypeId' => $params['ENTITY_TYPE_ID'],
'entityId' => $params['ENTITY_ID'],
'userId' => $params['CURRENT_USER_ID'],
]
);
$event->send();
}
return $voteList;
}