- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/ratings.php
- Класс: CAllRatings
- Вызов: CAllRatings::Add
static function Add($arFields)
{
global $DB, $stackCacheManager;
$err_mess = (CRatings::err_mess())."
Function: Add
Line: ";
// check only general field
if(!CRatings::__CheckFields($arFields))
return false;
$arFields_i = Array(
"ACTIVE" => $arFields["ACTIVE"] === 'Y' ? 'Y' : 'N',
"POSITION" => $arFields["POSITION"] === 'Y' ? 'Y' : 'N',
"AUTHORITY" => $arFields["AUTHORITY"] === 'Y' ? 'Y' : 'N',
"NAME" => $arFields["NAME"],
"ENTITY_ID" => $arFields["ENTITY_ID"],
"CALCULATION_METHOD" => $arFields["CALCULATION_METHOD"],
"~CREATED" => $DB->GetNowFunction(),
"~LAST_MODIFIED" => $DB->GetNowFunction(),
);
$ID = $DB->Add("b_rating", $arFields_i);
// queries modules and give them to inspect the field settings
foreach(GetModuleEvents("main", "OnAfterAddRating", true) as $arEvent)
$arFields = ExecuteModuleEventEx($arEvent, array($ID, $arFields));
CRatings::__AddComponents($ID, $arFields);
$arFields_u = Array(
"CONFIGS" => "'".$DB->ForSQL(serialize($arFields["CONFIGS"]))."'",
);
$DB->Update("b_rating", $arFields_u, "WHERE ID = ".$ID);
if ($arFields['AUTHORITY'] === 'Y')
CRatings::SetAuthorityRating($ID);
CAgent::AddAgent("CRatings::Calculate($ID);", "main", "N", 3600, "", "Y", "");
$stackCacheManager->Clear("b_rating");
return $ID;
}