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