• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/mysql/ratings.php
  • Класс: CRatings
  • Вызов: CRatings::GetRatingVoteListSQLExtended
static function GetRatingVoteListSQLExtended($arParam, $bplus, $bIntranetInstalled)
{
	global $DB, $USER;

	$externalAuthTypes = array_diff(BitrixMainUserTable::getExternalUserTypes(), array('email', 'replica'));

	return "
		SELECT
			U.ID,
			RV.VALUE AS VOTE_VALUE,
			RV.USER_ID,
			SUM(case when RV0.ID is not null then 1 else 0 end) ".$DB->quote("RANK").",
			MIN(RV.ID) RV_ID
		FROM
			b_rating_vote RV
			LEFT JOIN b_rating_vote RV0 ON RV0.USER_ID = ".intval($USER->GetId())." and RV0.OWNER_ID = RV.USER_ID
			INNER JOIN b_user U ON RV.USER_ID = U.ID
		WHERE
			(CASE WHEN U.EXTERNAL_AUTH_ID IN ('".join("', '", $externalAuthTypes)."') THEN 'Y' ELSE 'N' END) = 'N'
			AND RV.ENTITY_TYPE_ID = '".$DB->ForSql($arParam['ENTITY_TYPE_ID'])."'
			and RV.ENTITY_ID =  ".intval($arParam['ENTITY_ID'])."
			".self::getReactionFilterSQL($arParam, $bplus)."
		GROUP BY U.ID, RV.VALUE, RV.USER_ID
		ORDER BY ".($bIntranetInstalled? "RV.VALUE DESC, ".$DB->quote("RANK")." DESC, RV_ID DESC": "".$DB->quote("RANK")." DESC, RV.VALUE DESC, RV_ID DESC");
}