- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/mysql/ratings.php
- Класс: CRatings
- Вызов: CRatings::GetRatingVoteListSQL
static function GetRatingVoteListSQL($arParam, $bplus, $bIntranetInstalled)
{
global $DB, $USER;
$externalAuthTypes = array_diff(BitrixMainUserTable::getExternalUserTypes(), array('email', 'replica'));
return "
SELECT
U.ID,
U.NAME,
U.LAST_NAME,
U.SECOND_NAME,
U.LOGIN,
U.PERSONAL_PHOTO,
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, U.NAME, U.LAST_NAME, U.SECOND_NAME, U.LOGIN, U.PERSONAL_PHOTO, 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");
}