- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/ratings.php
- Класс: CAllRatings
- Вызов: CAllRatings::UpdateRatingUserBonus
static function UpdateRatingUserBonus($arParam)
{
global $DB;
$err_mess = (CRatings::err_mess())."
Function: AddRatingBonus
Line: ";
$arParam['RATING_ID'] = (int)$arParam['RATING_ID'];
$arParam['ENTITY_ID'] = (int)$arParam['ENTITY_ID'];
$arParam['BONUS'] = (float)$arParam['BONUS'];
$arFields = array(
'RATING_ID' => $arParam['RATING_ID'],
'ENTITY_ID' => $arParam['ENTITY_ID'],
'BONUS' => $arParam['BONUS'],
);
if (isset($arParam['VOTE_WEIGHT']))
$arFields['VOTE_WEIGHT'] = (float)$arParam['VOTE_WEIGHT'];
if (isset($arParam['VOTE_COUNT']))
$arFields['VOTE_COUNT'] = (int)$arParam['VOTE_COUNT'];
$rows = $DB->Update("b_rating_user", $arFields, "WHERE RATING_ID = ".$arParam['RATING_ID']." AND ENTITY_ID = ".$arParam['ENTITY_ID']);
if ($rows == 0)
{
$rsRB = $DB->Query("SELECT * FROM b_rating_user WHERE RATING_ID = ".$arParam['RATING_ID']." AND ENTITY_ID = ".$arParam['ENTITY_ID'], false, $err_mess.__LINE__);
if (!$rsRB->SelectedRowsCount())
$DB->Insert("b_rating_user", $arFields, $err_mess.__LINE__);
}
if (CACHED_b_rating_vote!==false)
{
global $CACHE_MANAGER;
$bucket_size = (int)CACHED_b_rating_bucket_size;
if($bucket_size <= 0)
$bucket_size = 100;
$CACHE_MANAGER->Clean("b_rvu_".$arParam['RATING_ID'].(int)($arParam['ENTITY_ID'] / $bucket_size), "b_rating_user");
}
return true;
}