- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/ratings.php
- Класс: CAllRatings
- Вызов: CAllRatings::OnAfterUserRegister
static function OnAfterUserRegister($arFields)
{
global $DB;
$err_mess = (CRatings::err_mess())."
Function: OnAfterUserRegister
Line: ";
if (isset($arFields['EXTERNAL_AUTH_ID']) && in_array($arFields['EXTERNAL_AUTH_ID'], BitrixMainUserTable::getExternalUserTypes(), true))
{
return false;
}
$userId = isset($arFields["USER_ID"]) ? (int)$arFields["USER_ID"] : (isset($arFields["ID"]) ? (int)$arFields["ID"] : 0);
if($userId>0)
{
$authorityRatingId = CRatings::GetAuthorityRating();
$ratingStartValue = COption::GetOptionString("main", "rating_start_authority", 3);
$ratingCountVote = COption::GetOptionString("main", "rating_count_vote", 10);
$arParam = array(
'RATING_ID' => $authorityRatingId,
'ENTITY_ID' => $userId,
'BONUS' => (int)$ratingStartValue,
'VOTE_WEIGHT' => (int)$ratingStartValue *COption::GetOptionString("main", "rating_vote_weight", 1),
'VOTE_COUNT' => (int)$ratingCountVote + (int)$ratingStartValue,
);
CRatings::UpdateRatingUserBonus($arParam);
if (IsModuleInstalled("intranet"))
{
$strSql = "INSERT INTO b_rating_subordinate (RATING_ID, ENTITY_ID, VOTES) VALUES ('".$authorityRatingId."', '".$userId."', '".((int)$ratingCountVote + (int)$ratingStartValue)."')";
$DB->Query($strSql, false, $err_mess.__LINE__);
}
$sRatingAssignType = COption::GetOptionString("main", "rating_assign_type", 'manual');
if ($sRatingAssignType === 'auto')
{
$assignRatingGroup = COption::GetOptionString("main", "rating_assign_rating_group", 0);
$assignAuthorityGroup = COption::GetOptionString("main", "rating_assign_authority_group", 0);
if ($assignRatingGroup == 0 && $assignAuthorityGroup == 0)
return false;
$arGroups = array();
if ($assignRatingGroup > 0)
$arGroups[] = (int)$assignRatingGroup;
if ($assignAuthorityGroup > 0 && $assignRatingGroup != $assignAuthorityGroup)
$arGroups[] = (int)$assignAuthorityGroup;
if(!empty($arGroups))
CUser::AppendUserGroup($userId, $arGroups);
}
if (CACHED_b_rating_vote!==false)
{
global $CACHE_MANAGER;
$bucket_size = (int)CACHED_b_rating_bucket_size;
if($bucket_size <= 0)
$bucket_size = 100;
$bucket = (int)($userId / $bucket_size);
$CACHE_MANAGER->Clean("b_rvu_".$authorityRatingId.$bucket, "b_rating_user");
}
}
}