• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/ratings.php
  • Класс: CAllRatings
  • Вызов: CAllRatings::GetRatingResult
static function GetRatingResult($ID, $entityId)
{
	global $DB;
	$err_mess = (CRatings::err_mess())."
Function: GetRatingResult
Line: "; $ID = (int)$ID; static $cacheRatingResult = array(); if(!array_key_exists($ID, $cacheRatingResult)) $cacheRatingResult[$ID] = array(); $arResult = array(); $arToSelect = array(); if(is_array($entityId)) { foreach($entityId as $value) { $value = (int)$value; if($value > 0) { if(array_key_exists($value, $cacheRatingResult[$ID])) $arResult[$value] = $cacheRatingResult[$ID][$value]; else { $arResult[$value] = $cacheRatingResult[$ID][$value] = array(); $arToSelect[$value] = $value; } } } } else { $value = (int)$entityId; if($value > 0) { if(isset($cacheRatingResult[$ID][$value])) $arResult[$value] = $cacheRatingResult[$ID][$value]; else { $arResult[$value] = $cacheRatingResult[$ID][$value] = array(); $arToSelect[$value] = $value; } } } if(!empty($arToSelect)) { $strSql = " SELECT ENTITY_TYPE_ID, ENTITY_ID, PREVIOUS_VALUE, CURRENT_VALUE, PREVIOUS_POSITION, CURRENT_POSITION FROM b_rating_results WHERE RATING_ID = '".$ID."' AND ENTITY_ID IN (".implode(',', $arToSelect).") "; $res = $DB->Query($strSql, false, $err_mess.__LINE__); while($arRes = $res->Fetch()) { $arRes['PROGRESS_VALUE'] = $arRes['CURRENT_VALUE'] - $arRes['PREVIOUS_VALUE']; $arRes['PROGRESS_VALUE'] = round($arRes['PROGRESS_VALUE'], 2); $arRes['PROGRESS_VALUE'] = $arRes['PROGRESS_VALUE'] > 0? "+".$arRes['PROGRESS_VALUE']: $arRes['PROGRESS_VALUE']; $arRes['ROUND_CURRENT_VALUE'] = round($arRes['CURRENT_VALUE']) == 0? 0: round($arRes['CURRENT_VALUE']); $arRes['ROUND_PREVIOUS_VALUE'] = round($arRes['PREVIOUS_VALUE']) == 0? 0: round($arRes['CURRENT_VALUE']); $arRes['CURRENT_POSITION'] = $arRes['CURRENT_POSITION'] > 0? $arRes['CURRENT_POSITION'] : GetMessage('RATING_NO_POSITION'); if ($arRes['PREVIOUS_POSITION']>0) { $arRes['PROGRESS_POSITION'] = $arRes['PREVIOUS_POSITION'] - $arRes['CURRENT_POSITION']; $arRes['PROGRESS_POSITION'] = $arRes['PROGRESS_POSITION'] > 0? "+".$arRes['PROGRESS_POSITION']: $arRes['PROGRESS_POSITION']; } else { $arRes['PREVIOUS_POSITION'] = 0; $arRes['PROGRESS_POSITION'] = 0; } $arResult[$arRes["ENTITY_ID"]] = $cacheRatingResult[$ID][$arRes["ENTITY_ID"]] = $arRes; } } if(!is_array($entityId) && !empty($arResult)) $arResult = array_pop($arResult); return $arResult; }