<?php
/*******************************************************************************/
//                          InstantCMS v1.8                                    //
//                      http://www.instantcms.ru/                              //
//                         component "Poster"                                  //
//                       written by Marat Fatikhov                             //
//                      (nickname Марат on a site)                             //
//                       E-mail: f-marat@mail.ru                               //
//                                                                             //
//                      LICENSED BY GNU/GPL v2                                 //
//                                                                             //
/********************************************************************************/
sleep(2);

//header('Content-Type: text/html; charset=windows-1251');
header('Cache-Control: no-cache');
session_start();

define("VALID_CMS", 1);
define('PATH', $_SERVER['DOCUMENT_ROOT']);

include(PATH.'/core/cms.php');

$inCore = cmsCore::getInstance();

$inCore->loadClass('db');
$inCore->loadClass('user');

$inDB   = cmsDatabase::getInstance();
$inUser = cmsUser::getInstance();

$inUser->update();

if (!$inUser->id) { die('Access denied'); }

$inCore->loadModel('poster');
$model = new cms_model_poster();

//проверяем входные параметры
$rate = $inCore->request('rate', 'int' , 0);
$item_id = $inCore->request('item_id', 'int' , 0);
$type = $inCore->request('type', 'str' , '');
$rating = @$_POST['rating'];
$votes = $inCore->request('votes', 'int' , 0);
if(!$rate || !$item_id || !$type){ return false; }
//число ли суммарный рейтинг?
if(!is_numeric($rating)){ return false; }
//входит ли голос в допустимый предел
$rate = min(5, max(1, (int)$rate));

$reply = array();

//проверяем кукис. если найден возвращаемся
$cookie_name = "poster_{$type}_{$item_id}";
if($inCore->getCookie("{$cookie_name}")){
   $reply['already'] = 1;
   $reply['votes'] = $votes;
   $reply['avg'] = $rating;
}else{
   //обновляем значение рейтинга
   $sum = $rating*$votes;
   $reply['votes'] = $votes+1;
   $reply['sum'] = $sum + $rate;
   $reply['avg'] = sprintf('%01.2f', $reply['sum'] / $reply['votes']);
   $model->updateRating($item_id, $reply['avg'], $reply['votes'], $type);
   //устанавливаем кукис (на неделю)
   $inCore->setCookie("{$cookie_name}", 'yes', time()+604800);
}

echo json_encode($reply);

?>
