Файл: adultscript-2.0.3-pro/files/mobile/templates/default/extend/ajax/photo_rate.plugin.php
Строк: 75
<?php
defined('_VALID') or die('Restricted Access!');
function ajax_plugin_photo_rate()
{
$data = array('status' => 0, 'code' => '', 'msg' => '', 'debug' => '');
$pcfg = VF::cfg('module.photo');
VLanguage::load('frontend.photo');
if ($pcfg['allow_rating'] != '1') {
$data['msg'] = __('rating-disabled');
return json_encode($data);
}
if (isset($_POST['rating']) && isset($_POST['photo_id'])) {
$user_id = (VAuth::loggedin()) ? (int) $_SESSION['user_id'] : 0;
if ($pcfg['rating_type'] == 'user' && !$user_id) {
$data['msg'] = __('rating-login');
return json_encode($data);
}
$photo_id = (int) trim($_POST['photo_id']);
$vote = (float) trim($_POST['rating']);
$ip = VServer::ip(TRUE);
$db = VF::factory('database');
if ($pcfg['rating_count'] == '1') {
if ($pcfg['rating_type'] == 'user') {
$sql = "SELECT rating_id
FROM #__photo_rating
WHERE photo_id = ".$photo_id."
AND voter_id = ".$user_id."
LIMIT 1";
} else {
$sql = "SELECT rating_id
FROM #__photo_rating
WHERE photo_id = ".$photo_id."
AND voter_ip = ".$ip."
LIMIT 1";
}
$db->query($sql);
if ($db->affected_rows()) {
$data['msg'] = __('rating-already');
return json_encode($data);
}
}
$db->query("SELECT p.rating, p.rated_by, a.album_id, a.rating AS arating, a.rated_by AS arated_by
FROM #__photo AS p
INNER JOIN #__photo_albums AS a ON (a.album_id = p.album_id)
WHERE p.photo_id = ".$photo_id."
LIMIT 1");
if ($db->affected_rows()) {
$photo = $db->fetch_assoc();
$rating = (float) $photo['rating'];
$rated_by = (int) $photo['rated_by'];
$arating = (float) $photo['arating'];
$arated_by = (int) $photo['arated_by'];
$album_id = (int) $photo['album_id'];
$value = round($rating*$rated_by, 2);
$rating = $value+$vote;
$rated_by = $rated_by+1;
$avalue = round($arating*$arated_by, 2);
$arating = $avalue+$vote;
$arated_by = $arated_by+1;
$arating = round($arating/$arated_by, 2);
$rating = round($rating/$rated_by, 2);
$db->query("UPDATE #__photo
SET rating = ".$rating.",
rated_by = ".$rated_by."
WHERE photo_id = ".$photo_id."
LIMIT 1");
$db->query("UPDATE #__photo_albums
SET rating = ".$arating.",
rated_by = ".$arated_by."
WHERE album_id = ".$album_id."
LIMIT 1");
$db->query("INSERT INTO #__photo_rating
SET photo_id = ".$photo_id.",
voter_id = ".$user_id.",
voter_ip = ".$ip.",
rating = ".$vote.",
add_date = '".date('Y-m-d h:i:s')."'");
$data['status'] = 1;
VF::factory('cache')->remove('photo_'.$photo_id);
VF::factory('cache')->remove('album_'.$album_id);
$code = ($rating == 0 or $rating == 5) ? 100 : round(($rating*100)/5);
$data['code'] = '<strong>'.$code.'%</strong>';
$rating = ($rated_by === 1) ? ' '.__('vote') : ' '.__('votes');
$data['msg'] = $rated_by.$rating;
} else {
$data['msg'] = __('photo-invalid');
}
}
return json_encode($data);
}
?>