- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/controller/rating.php
- Класс: BitrixMainControllerRating
- Вызов: Rating::listAction
public function listAction(array $params = []): ?array
{
$signedKey = (string) ($params['RATING_VOTE_KEY_SIGNED'] ?? '');
$entityId = (int) ($params['RATING_VOTE_ENTITY_ID'] ?? 0);
$entityTypeId = (string) ($params['RATING_VOTE_TYPE_ID'] ?? '');
$payloadValue = $entityTypeId . '-' . $entityId;
$signer = new BitrixMainSecuritySignTimeSigner();
if (
$signedKey === ''
|| $signer->unsign($signedKey, 'main.rating.vote') !== $payloadValue
)
{
$this->addError(new MainError('Access denied'));
return null;
}
$page = (int)($params['RATING_VOTE_LIST_PAGE'] ?? 1);
$listType = (
isset($params['RATING_VOTE_LIST_TYPE'])
&& $params['RATING_VOTE_LIST_TYPE'] === 'minus'
? 'minus'
: 'plus'
);
$reaction = (string)($params['RATING_VOTE_REACTION'] ?? '');
$pathToUserProfile = (string)($params['PATH_TO_USER_PROFILE'] ?? '/people/user/#USER_ID#/');
if (
$entityTypeId === ''
|| $entityId <= 0
)
{
$this->addError(new MainError('Incorrect data', 'ERR_PARAMS'));
return null;
}
return Action::list([
'ENTITY_TYPE_ID' => $entityTypeId,
'ENTITY_ID' => $entityId,
'LIST_PAGE' => $page,
'LIST_LIMIT' => 20,
'REACTION' => $reaction,
'LIST_TYPE' => $listType,
'PATH_TO_USER_PROFILE' => $pathToUserProfile,
'CURRENT_USER_ID' => $this->getCurrentUser()->getId(),
'CHECK_RIGHTS' => 'Y',
]);
}