Вход Регистрация
Файл: localhost/lite/classes/rating.class.php
Строк: 137
<?php


/**
 * @package   Zcore
 * @author      Artem Sokolovsky
 */


// ~~~~~~~~~~~~~~~~~~~~Ядро для обработки рейтинга пользователей~~~~~~~~~~~~~~~~~~~~~~~~~~~ //

class rating {

// Функция подсчёта рейтинга

function user($id) {

    if (@
filemtime(SERVER."/users/rating/user_$id.dat") < time()-43200) {
    
// Рейтинг пользователя    
    
    
$user_rating = DB :: $dbh -> queryFetch("SELECT `rating`, `vip` FROM `user` WHERE `id`=? LIMIT 1;", array($id));    
    
// За первые сутки    
    
    
$diary = DB :: $dbh -> querySingle("SELECT count(*) FROM `diary` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
$topic = DB :: $dbh -> querySingle("SELECT count(*) FROM `forum_topic` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
$files = DB :: $dbh -> querySingle("SELECT count(*) FROM `files` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
$photo = DB :: $dbh -> querySingle("SELECT count(*) FROM `photo` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
    
$arbor = DB :: $dbh -> querySingle("SELECT count(*) FROM `arbor` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
$news_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `news_comments` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
$diary_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `diary_comments` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
$forum_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `forum_comments` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
$guestbook_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `guestbook_comments` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
$photo_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `photo_comments` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
$files_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `files_comments` WHERE `user`=? AND `time`>?;", array($id, time()-86400 * 1));
    
// За вторые сутки
  
    
$yesterday_diary = DB :: $dbh -> querySingle("SELECT count(*) FROM `diary` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));    
    
$yesterday_topic = DB :: $dbh -> querySingle("SELECT count(*) FROM `forum_topic` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));
    
$yesterday_files = DB :: $dbh -> querySingle("SELECT count(*) FROM `files` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));
    
$yesterday_photo = DB :: $dbh -> querySingle("SELECT count(*) FROM `photo` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));
    
    
$yesterday_arbor = DB :: $dbh -> querySingle("SELECT count(*) FROM `arbor` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));    
    
$yesterday_news_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `news_comments` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));
    
$yesterday_diary_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `diary_comments` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));    
    
$yesterday_forum_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `forum_comments` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));    
    
$yesterday_guestbook_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `guestbook_comments` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));    
    
$yesterday_photo_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `photo_comments` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));    
    
$yesterday_files_comments = DB :: $dbh -> querySingle("SELECT count(*) FROM `files_comments` WHERE `user`=? AND `time`>? AND `time`<?;", array($id, time()-86400 * 3, time()-86400 * 2));    

// Подсчёт    
    
    
$yesterday = $yesterday_diary + $yesterday_topic + $yesterday_files + $yesterday_photo + $yesterday_arbor + $yesterday_news_comments + $yesterday_diary_comments + $yesterday_forum_comments + $yesterday_guestbook_comments + $yesterday_photo_comments + $yesterday_files_comments;
    
$today = $diary + $topic + $files + $photo + $arbor + $news_comments + $diary_comments + $forum_comments + $guestbook_comments + $photo_comments + $files_comments;

// Формула начисления    
    
    
$sum = $today - $yesterday;
    
$rand = rand(1,5);
    
$rating = ($user_rating['vip'] > time()) ? $sum + rand(20,90) : $sum * $rand;
    
// Результат    
    
    
if ($rating > 0) {
    
DB :: $dbh -> query("UPDATE `user` SET `rating`=`rating`+".$rating." WHERE `id`=? LIMIT 1", array($id));
    
$count = '<span style="color: #009933;">+'.$rating / 100 .'</span>';
    } else if (
$rating < 0) {
    
$sum_rating = ($user_rating['rating'] - abs($rating) < 0) ? $user_rating['rating'] : abs($rating);
    
DB :: $dbh -> query("UPDATE `user` SET `rating`=`rating`-".$sum_rating." WHERE `id`=? LIMIT 1", array($id));
    
$count = ''.($sum_rating == 0 ? '<span style="color: #D3D3D3;">0.00</span>' : '<span style="color: #FF0000;">-'.$sum_rating / 100 .'</span>').'';
    } else {
    
$count = '<span style="color: #D3D3D3;">'.$rating.'.00</span>';
    }
    
    
file_put_contents(SERVER."/users/rating/user_$id.dat", $count, LOCK_EX);
    } 
    return 
file_get_contents(SERVER."/users/rating/user_$id.dat");
    } 
    
} 

?>
Онлайн: 1
Реклама