Файл: InstantSocial/uploud/components/users/rratings/rpc.php
Строк: 186
<?php
/*
--------------------------------------------------------- */
session_start();
define("VALID_CMS", 1);
define('PATH', $_SERVER['DOCUMENT_ROOT']);
define('HOST', 'http://' . $_SERVER['HTTP_HOST']);
include(PATH.'/core/cms.php');
$inCore = cmsCore::getInstance();
$inCore->loadClass('config'); //конфигурация
$inCore->loadClass('db');
$inCore->loadClass('user');
$inUser = cmsUser::getInstance();
$inUser->update();
$is_user = $inUser->id;
$inDB = cmsDatabase::getInstance();
$rating_unitwidth = '30';
//getting the values
$id_sent = preg_replace("/[^0-9a-zA-Z]/","",$_REQUEST['q']);
$vote_sent = preg_replace("/[^0-9]/","",$_REQUEST['j']);
$units = preg_replace("/[^0-9]/","",$_REQUEST['c']);
if ($vote_sent > $units) die("Sorry, vote appears to be invalid."); // kill the script because normal users will never see this.
$sql = "SELECT total_votes, total_value FROM cms_rratings WHERE id='$id_sent' ";
$query= $inDB->query($sql);
$numbers=$inDB->fetch_assoc($query);
$count = $numbers['total_votes']; //how many votes total
$current_rating = $numbers['total_value']; //total number of rating added together and stored
$sum = $vote_sent+$current_rating; // add together the current vote value and the total vote value
if ($count==1) {
$tense='голос';
} else if ($count<=4 AND $count>=2) {
$tense='голосa';
} else {
$tense='голосов';
}
//$tense = ($count==1) ? "vote" : "votes"; //plural form votes/vote
// checking to see if the first vote has been tallied
// or increment the current number of votes
($sum==0 ? $added=0 : $added=$count+1);
// if it is an array i.e. already has entries the push in another value
$sql = "SELECT u_id FROM cms_rratings_users WHERE u_id='$is_user' AND vot_id='$id_sent' ";
$resu = $inDB->query($sql);
$voted=$inDB->fetch_assoc($resu);
if(!$voted) { //if the user hasn't yet voted, then vote normally…
if (($vote_sent >= 1 && $vote_sent <= $units) && ($ip == $ip_num)) { // keep votes within range, make sure IP matches - no monkey business!
$update = "UPDATE cms_rratings SET total_votes='".$added."', total_value='".$sum."' WHERE id='$id_sent'";
$result = $inDB->query($update);
$sql = "INSERT INTO cms_rratings_users (`vot_id`, `u_id`, `stats`, `vot`, `data`) VALUES ('$id_sent', '$is_user', '1', '$vote_sent', NOW())";
$resule = $inDB->query($sql);
}
} //end for the "if(!$voted)"
// these are new queries to get the new values!
$newtotals = $inDB->query("SELECT total_votes, total_value FROM cms_rratings WHERE id='$id_sent' ");
if ($inDB->error()) { return false; }
$numbers = $inDB->fetch_assoc($newtotals);
$count = $numbers['total_votes'];//how many votes total
$current_rating = $numbers['total_value'];//total number of rating added together and stored
if ($count==1) {
$tense='голос';
} else if ($count<=4 AND $count>=2) {
$tense='голосa';
} else {
$tense='голосов';
}
//$tense = ($count==1) ? "vote" : "votes"; //plural form votes/vote
// $new_back is what gets 'drawn' on your page after a successful 'AJAX/Javascript' vote
$new_back = array();
$new_back[] .= '<ul class="unit-rating" style="width:'.$units*$rating_unitwidth.'px;">';
$new_back[] .= '<li class="current-rating" style="width:'.@number_format($current_rating/$count,2)*$rating_unitwidth.'px;">Current rating.</li>';
$new_back[] .= '<li class="r1-unit">1</li>';
$new_back[] .= '<li class="r2-unit">2</li>';
$new_back[] .= '<li class="r3-unit">3</li>';
$new_back[] .= '<li class="r4-unit">4</li>';
$new_back[] .= '<li class="r5-unit">5</li>';
$new_back[] .= '<li class="r6-unit">6</li>';
$new_back[] .= '<li class="r7-unit">7</li>';
$new_back[] .= '<li class="r8-unit">8</li>';
$new_back[] .= '<li class="r9-unit">9</li>';
$new_back[] .= '<li class="r10-unit">10</li>';
$new_back[] .= '</ul>';
$new_back[] .= '<p class="voted">Рейтинг: <strong>'.@number_format($sum/$added,1).'</strong>/'.$units.' ('.$count.' '.$tense.') ';
$new_back[] .= '<span class="thanks">Спасибо за Ваш голос!</span></p>';
$allnewback = join("n", $new_back);
// ========================
//name of the div id to be updated | the html that needs to be changed
$output = "unit_long$id_sent|$allnewback";
echo $output;
?>