Просмотр файла pages/rating.php

Размер файла: 8.73Kb
<?php
#-----------------------------------------------------#
#          ********* ROTORCMS *********               #
#              Made by  :  VANTUZ                     #
#               E-mail  :  [email protected]         #
#                 Site  :  http://pizdec.ru           #
#             WAP-Site  :  http://visavi.net          #
#                  ICQ  :  36-44-66                   #
#  Вы не имеете право вносить изменения в код скрипта #
#        для его дальнейшего распространения          #
#-----------------------------------------------------#	
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/' . $config['themes'] . '/index.php');

$uz = check($_GET['uz']);
$uid = check($_GET['uid']);

if (isset($_GET['act'])) {
  $act = check($_GET['act']);
} else {
  $act = 'plus';
} 

show_title('site.png', 'Изменение авторитета');
$config['newtitle'] = 'Изменение авторитета';

if (is_user()) {
  if ($uid == $_SESSION['token']) {
    if ($udata['users_point'] >= $config['editratingpoint']) {
      if ($log != $uz) {
        $queryuser = DB :: $dbh -> querySingle("SELECT `users_id` FROM `users` WHERE `users_login`=? LIMIT 1;", array($uz));
        if (!empty($queryuser)) {
          $querytime = DB :: $dbh -> querySingle("SELECT MAX(`rating_time`) FROM `rating` WHERE `rating_user`=? LIMIT 1;", array($log));
          if ($querytime + 10800 < SITETIME) {
            $queryrat = DB :: $dbh -> querySingle("SELECT `rating_id` FROM `rating` WHERE `rating_user`=? AND `rating_login`=? AND `rating_time`>? LIMIT 1;", array($log, $uz, SITETIME-86400 * 30));
            if (empty($queryrat)) {
              switch ($act):
              # ###########################################################################################
              # #                                    Главная страница                                    ##
              # ###########################################################################################
              case 'plus':

                DB :: $dbh -> query("INSERT INTO `rating` (`rating_user`, `rating_login`, `rating_vote`, `rating_time`) VALUES (?, ?, ?, ?);", array($log, $uz, 1, SITETIME));
                DB :: $dbh -> query("DELETE FROM `rating` WHERE `rating_user`=? AND `rating_time` < (SELECT MIN(`rating_time`) FROM (SELECT `rating_time` FROM `rating` WHERE `rating_user`=? ORDER BY `rating_time` DESC LIMIT 20) AS del);", array($log, $log));

                DB :: $dbh -> query("UPDATE `users` SET `users_newprivat`=`users_newprivat`+1, `users_rating`=`users_rating`+1, `users_posrating`=`users_posrating`+1 WHERE `users_login`=? LIMIT 1;", array($uz));
                // ------------------------------Уведомление по привату------------------------//
                $textpriv = '<img src="../images/img/thumb-up.gif" alt="plus" /> Пользователь [b]' . nickname($log) . '[/b] поставил вам плюс!';

                DB :: $dbh -> query("INSERT INTO `inbox` (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`) VALUES (?, ?, ?, ?);", array($uz, $log, $textpriv, SITETIME));

                $uzdata = DB :: $dbh -> queryFetch("SELECT `users_rating`, `users_posrating`, `users_negrating` FROM `users` WHERE `users_login`=? LIMIT 1;", array($uz));

                echo 'Ваш положительный голос за пользователя <b>' . nickname($uz) . '</b> успешно оставлен!<br />';
                echo 'В данный момент его авторитет: ' . $uzdata['users_rating'] . '<br />';
                echo 'Всего положительных голосов: ' . $uzdata['users_posrating'] . '<br />';
                echo 'Всего отрицательных голосов: ' . $uzdata['users_negrating'] . '<br /><br />';

                echo 'От общего числа положительных и отрицательных голосов строится рейтинг самых авторитетных<br />';
                echo 'Внимание, следующий голос вы сможете оставить не менее чем через 3 часа!<br /><br />';
                break;
              # ###########################################################################################
              # #                                Уменьшение авторитета                                   ##
              # ###########################################################################################
              case 'minus':
                if ($udata['users_rating'] >= 5) {
                  DB :: $dbh -> query("INSERT INTO `rating` (`rating_user`, `rating_login`, `rating_vote`, `rating_time`) VALUES (?, ?, ?, ?);", array($log, $uz, 0, SITETIME));

                  DB :: $dbh -> query("DELETE FROM `rating` WHERE `rating_user`=? AND `rating_time` < (SELECT MIN(`rating_time`) FROM (SELECT `rating_time` FROM `rating` WHERE `rating_user`=? ORDER BY `rating_time` DESC LIMIT 20) AS del);", array($log, $log));

                  DB :: $dbh -> query("UPDATE `users` SET `users_newprivat`=`users_newprivat`+1, `users_rating`=`users_rating`-1, `users_negrating`=`users_negrating`+1 WHERE `users_login`=? LIMIT 1;", array($uz));
                  // ------------------------------Уведомление по привату------------------------//
                  $textpriv = '<img src="../images/img/thumb-down.gif" alt="minus" /> Пользователь [b]' . nickname($log) . '[/b] поставил вам минус!';

                  DB :: $dbh -> query("INSERT INTO `inbox` (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`) VALUES (?, ?, ?, ?);", array($uz, $log, $textpriv, SITETIME));

                  $uzdata = DB :: $dbh -> queryFetch("SELECT `users_rating`, `users_posrating`, `users_negrating` FROM `users` WHERE `users_login`=? LIMIT 1;", array($uz));

                  echo 'Ваш отрицательный голос за пользователя <b>' . nickname($uz) . '</b> успешно оставлен!<br />';
                  echo 'В данный момент его авторитет: ' . $uzdata['users_rating'] . '<br />';
                  echo 'Всего положительных голосов: ' . $uzdata['users_posrating'] . '<br />';
                  echo 'Всего отрицательных голосов: ' . $uzdata['users_negrating'] . '<br /><br />';

                  echo 'От общего числа положительных и отрицательных голосов строится рейтинг самых авторитетных<br />';
                  echo 'Внимание, следующий голос вы сможете оставить не менее чем через 3 часа!<br /><br />';
                } else {
                  show_error('Ошибка! Уменьшать авторитет могут только пользователи с рейтингом 5 или выше!');
                } 
                break;

              default:
                header("location: rating.php?" . SID);
                exit;
                endswitch;
              } else {
              show_error('Ошибка! Вы уже изменяли авторитет этому пользователю!');
            } 
          } else {
            show_error('Ошибка! Разрешается изменять авторитет раз в 3 часа!');
          } 
        } else {
          show_error('Ошибка! Данного пользователя не существует!');
        } 
      } else {
        show_error('Ошибка! Нельзя изменять авторитет самому себе!');
      } 
    } else {
      show_error('Ошибка! Для изменения авторитета вам необходимо набрать ' . points($config['editratingpoint']) . '!');
    } 
  } else {
    show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  } 
} else {
  show_login('Вы не авторизованы, чтобы изменять авторитет, необходимо');
} 

echo '<img src="../images/img/luggage.gif" alt="image" /> <a href="rathist.php?' . SID . '">История</a><br />';
echo '<img src="../images/img/back.gif" alt="image" /> <a href="anketa.php?uz=' . $uz . '&amp;' . SID . '">Вернуться</a><br />';
echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a>';

include_once ('../themes/' . $config['themes'] . '/foot.php');

?>