• Модуль: 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;
}