• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/mysql/ratings.php
  • Класс: CRatings
  • Вызов: CRatings::AutoAssignGroup
static function AutoAssignGroup($groupId, $authorityValueAdd, $authorityValueDelete)
{
	global $DB;
	$err_mess = (CRatings::err_mess())."
Function: AutoAssignGroup
Line: "; $groupId = intval($groupId); if ($groupId == 0) return false; $ratingId = CRatings::GetAuthorityRating(); $ratingValueAdd = intval($authorityValueAdd); $ratingValueDelete = intval($authorityValueDelete); $sRatingWeightType = COption::GetOptionString("main", "rating_weight_type", "auto"); if ($sRatingWeightType == 'auto') { $ratingValueAdd = $ratingValueAdd*COption::GetOptionString("main", "rating_vote_weight", 1); $ratingValueDelete = $ratingValueDelete*COption::GetOptionString("main", "rating_vote_weight", 1); } // remove the group from all users who it is, but you need to remove it $strSql = " DELETE FROM b_user_group WHERE (USER_ID, GROUP_ID) in ( SELECT rr.ENTITY_ID as USER_ID , $groupId as GROUP_ID FROM b_rating_results rr WHERE rr.RATING_ID = $ratingId AND rr.CURRENT_VALUE < $ratingValueDelete ) "; $DB->Query($strSql, false, $err_mess.__LINE__); // add a group to all users who do not, but you need to add it $strSql = " INSERT INTO b_user_group (USER_ID, GROUP_ID) SELECT rr.ENTITY_ID, '$groupId' FROM b_rating_results rr LEFT JOIN b_user_group ug ON ug.GROUP_ID = $groupId AND ug.USER_ID = rr.ENTITY_ID WHERE rr.RATING_ID = $ratingId and rr.CURRENT_VALUE >= $ratingValueAdd and ug.USER_ID IS NULL"; $DB->Query($strSql, false, $err_mess.__LINE__); return true; }