$arParams['USER_VOTE'] = $arComponentVoteResult['USER_VOTE']; } else { $arParams['TOTAL_VALUE'] = 0; $arParams['TOTAL_VOTES'] = 0; $arParams['TOTAL_POSITIVE_VOTES'] = 0; $arParams['TOTAL_NEGATIVE_VOTES'] = 0; $arParams['USER_HAS_VOTED'] = 'N'; $arParams['USER_VOTE'] = '0'; } $arAllowVote = CRatings::CheckAllowVote($arParams); if ($arAllowVote['RESULT']) { $APPLICATION->RestartBuffer(); $action = 'list'; if ($_POST['RATING_VOTE_ACTION'] == 'plus' || $_POST['RATING_VOTE_ACTION'] == 'minus') { $arAdd = array("ENTITY_TYPE_ID" => $_POST['RATING_VOTE_TYPE_ID'], "ENTITY_ID" => intval($_POST['RATING_VOTE_ENTITY_ID']), "VALUE" => $_POST['RATING_VOTE_ACTION'] == 'plus' ? 1 : -1, "USER_IP" => $_SERVER['REMOTE_ADDR'], "USER_ID" => $USER->GetId()); CRatings::AddRatingVote($arAdd); $action = $_POST['RATING_VOTE_ACTION']; } else { if ($_POST['RATING_VOTE_ACTION'] == 'cancel') { $arCancel = array("ENTITY_TYPE_ID" => $_POST['RATING_VOTE_TYPE_ID'], "ENTITY_ID" => intval($_POST['RATING_VOTE_ENTITY_ID']), "USER_ID" => $USER->GetId()); CRatings::CancelRatingVote($arCancel); $action = $_POST['RATING_VOTE_ACTION']; } } $ar = array("ENTITY_TYPE_ID" => $_POST['RATING_VOTE_TYPE_ID'], "ENTITY_ID" => intval($_POST['RATING_VOTE_ENTITY_ID']), "LIST_LIMIT" => 0, "LIST_TYPE" => isset($_POST['RATING_VOTE_ACTION']) && $_POST['RATING_VOTE_ACTION'] == 'minus' ? 'minus' : 'plus'); $arVoteList = CRatings::GetRatingVoteList($ar); if ($_POST['RATING_RESULT'] == 'Y') { $arVoteResult = GetVoteResult($_POST['RATING_VOTE_TYPE_ID'], $_POST['RATING_VOTE_ENTITY_ID']); $arVoteList = array_merge($arVoteList, $arVoteResult); } $arVoteList['action'] = $action;