- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/mysql/ratings.php
- Класс: CRatings
- Вызов: CRatings::SetAuthorityDefaultValue
static function SetAuthorityDefaultValue($arParams)
{
global $DB;
$rsRatings = CRatings::GetList(array('ID' => 'ASC'), array('ENTITY_ID' => 'USER'));
while ($arRatingsTmp = $rsRatings->GetNext())
$arRatingList[] = $arRatingsTmp['ID'];
if (isset($arParams['DEFAULT_USER_ACTIVE']) && $arParams['DEFAULT_USER_ACTIVE'] == 'Y' && IsModuleInstalled("forum") && is_array($arRatingList) && !empty($arRatingList))
{
$ratingStartValue = 0;
if (isset($arParams['DEFAULT_CONFIG_NEW_USER']) && $arParams['DEFAULT_CONFIG_NEW_USER'] == 'Y')
$ratingStartValue = COption::GetOptionString("main", "rating_start_authority", 3);
$strSql = "UPDATE b_rating_user SET BONUS = $ratingStartValue WHERE RATING_ID IN (".implode(',', $arRatingList).")";
$res = $DB->Query($strSql, false, $err_mess.__LINE__);
$strSql = "
UPDATE
b_rating_user RU,
( SELECT
TO_USER_ID as ENTITY_ID, COUNT(*) as CNT
FROM
b_forum_user_points FUP
GROUP BY TO_USER_ID
) as RP
SET
RU.BONUS = ".$DB->IsNull('RP.CNT', '0')."+".$ratingStartValue."
WHERE
RU.RATING_ID IN (".implode(',', $arRatingList).")
and RU.ENTITY_ID = RP.ENTITY_ID
";
$res = $DB->Query($strSql, false, $err_mess.__LINE__);
}
else if (isset($arParams['DEFAULT_CONFIG_NEW_USER']) && $arParams['DEFAULT_CONFIG_NEW_USER'] == 'Y' && is_array($arRatingList) && !empty($arRatingList))
{
$ratingStartValue = COption::GetOptionString("main", "rating_start_authority", 3);
$strSql = "UPDATE b_rating_user SET BONUS = ".$ratingStartValue." WHERE RATING_ID IN (".implode(',', $arRatingList).")";
$res = $DB->Query($strSql, false, $err_mess.__LINE__);
}
return true;
}