Вход Регистрация
Файл: core/modules/users_rating.php
Строк: 187
<?php

if (!defined('CMS')) { die('Access Denied!'); }

$data = array();
$data = $db->selectRow("SELECT `u`.*, `v`.*
                        FROM ?_users `u` LEFT JOIN ?_users_visit `v`
                        ON `u`.`users_login` = `v`.`visit_user`
                        WHERE `u`.`users_id` = ? LIMIT 1;"
, $user_id);

if (empty(
$data) || !is_array($data)) {

    
$inSes->addMessage('Ошибка! Пользователь с данным логином не найден!');
    
redirect($config['site_url']);
}

if (
$data['users_ban'] == 1) {

    
$inSes->addMessage('Ошибка! Пользователь заблокирован!');
    
redirect($config['site_url']);
}

if (
$config['allow_regkeys'] > 0 && $data['users_confirmreg'] > 0) {

    
$inSes->addMessage('Ошибка! Пользователя не существует!');
    
redirect($config['site_url']);
}

if (
$is_logged) {

    if (
$log != $data['users_login'] || is_admin()) {

        if (
$uset['users_point'] >= $config['edit_rating_point']) {

            
$_time = (int) $db->selectCell("SELECT MAX(`rating_time`) FROM ?_users_rating WHERE `rating_user` = ? LIMIT 1;", $log);

            if (
$_time + 10800 < SITE_TIME) {

                
$is_rat = (int) $db->selectCell("SELECT `rating_id` FROM ?_users_rating
                                                 WHERE `rating_user` = ? AND `rating_login` = ? 
                                                 AND `rating_time` > ? LIMIT 1;"
, $log, $data['users_login'], SITE_TIME-86400 * 30);
                if (
$is_rat < 1) {

                    if (!empty(
$_POST['submit'])) {

                      
$vote = !empty($_POST['vote']) ? num($_POST['vote'])   : 0;
                      
$text = !empty($_POST['text']) ? check($_POST['text']) : '';

                      if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                        if (
cms_strlen($text) >= 3 && cms_strlen($text) <= 250) {

                          
$text = antimat($text);
                          
$text = smiles($text);

                          if (
$vote == 1) { // Увеличение авторитета

                              
$db->query("INSERT INTO ?_users_rating (`rating_user`, `rating_login`, `rating_text`, `rating_vote`, `rating_time`) 
                                              VALUES (?, ?, ?, ?, ?);"
, $log, $data['users_login'], $text, 1, SITE_TIME);

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

                              
$db->query("UPDATE ?_users SET `users_newprivat` = (`users_newprivat` + 1), `users_rating` = CAST(`users_posrating`-`users_negrating` AS SIGNED)+1, `users_posrating` = (`users_posrating` + 1) WHERE `users_login` = ? LIMIT 1;", $data['users_login']);

                              
$uzdata = $db->selectRow("SELECT `users_rating`, `users_posrating`, `users_negrating` FROM ?_users 
                                                        WHERE `users_login` = ? LIMIT 1;"
, $data['users_login']);

                              
$priv  = '<img src="' . $config['site_url'] . '/images/icons/up.gif" class="icon" alt="Плюс" /> ';
                              
$priv .= 'Пользователь [b]' . nickname($log) . '[/b] ';
                              
$priv .= 'поставил вам плюс! (Ваш рейтинг: ' . $uzdata['users_rating'] . ')';
                              
$priv .= "nКомментарий: " . $text;

                              
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`) 
                                          VALUES (?, ?, ?, ?);"
, $data['users_login'], $log, $priv, SITE_TIME);

                              
$inSes->addMessage('Ваш положительный голос за пользователя <b>' . nickname($data['users_login']) . '</b> успешно оставлен!', 'ok');

                              
gen_red('anketa', '', RND);

                          }
                          else if (
$vote == 2) {

                            if (
$uset['users_rating'] >= 5) {

                              
$db->query("INSERT INTO ?_users_rating (`rating_user`, `rating_login`, `rating_text`, `rating_vote`, `rating_time`) 
                                          VALUES (?, ?, ?, ?, ?);"
, $log, $data['users_login'], $text, 0, SITE_TIME);

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

                              
$db->query("UPDATE ?_users SET `users_newprivat` = (`users_newprivat` + 1), `users_rating` = CAST(`users_posrating`-`users_negrating` AS SIGNED)-1, `users_negrating` = (`users_negrating` + 1) WHERE `users_login` = ? LIMIT 1;", $data['users_login']);

                              
$uzdata = $db->selectRow("SELECT `users_rating`, `users_posrating`, `users_negrating` FROM ?_users 
                                                        WHERE `users_login` = ? LIMIT 1;"
, $data['users_login']);

                              
$priv  = '<img src="' . $config['site_url'] . '/images/icons/down.gif" class="icon" alt="Минус" /> ';
                              
$priv .= 'Пользователь [b]' . nickname($log) . '[/b] ';
                              
$priv .= 'поставил вам минус! (Ваш рейтинг: ' . $uzdata['users_rating'] . ')';
                              
$priv .= "nКомментарий: " . $text;

                              
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`) 
                                          VALUES (?, ?, ?, ?);"
, $data['users_login'], $log, $priv, SITE_TIME);

                              
$inSes->addMessage('Ваш отрицательный голос за пользователя <b>' . nickname($data['users_login']) . '</b> успешно оставлен!', 'ok');

                              
gen_red('anketa', '', RND);

                            }
                            else 
$inSes->addMessage('Ошибка! Уменьшать авторитет могут только пользователи с рейтингом 5 или выше!');
                          }
                          else 
$inSes->addMessage('Ошибка! Неверно указана оценка!');
                        }
                        else 
$inSes->addMessage('Ошибка! Слишком длинный или короткий комментарий!');
                      }
                      else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
                    }

                    
show_header('Изменение авторитета');

                    echo 
'<div class="bl">' . user_visit_icon($data['users_login'], $data['users_gender'], $data['visit_nowtime']);
                    echo 
' <b>' . users_anketa($data['users_id'], $data['users_login']) . ' </b> ';
                    echo 
user_visit($data['users_login']) . '</div>';

                    
$form = new cmsForm('?rnd=' . $_SESSION['token']);
                    
$form->addSelect('Рейтинг:', 'vote', $id, array(1 => 'Плюс', 2 => 'Минус'));
                    
$form->addTextarea('Комментарий:', 'text', request('text'));
                    
$form->Submit('Продолжить','submit');
                    unset(
$form);

                    echo 
'<div class="link"><a href="' . gen_uri('anketa', '', RND) . '">В анкету</a></div>';
                    echo 
'<div class="link"><a href="' . gen_uri('rating_history', '', RND) . '">История</a></div>';
                }
                else {

                    
$inSes->addMessage('Ошибка! Вы уже изменяли авторитет этому пользователю!');
                    
gen_red('anketa', '', RND);
                }
            }
            else {

                
$inSes->addMessage('Ошибка! Разрешается изменять авторитет раз в 3 часа!');
                
gen_red('anketa', '', RND);
            }
        }
        else {

            
$inSes->addMessage('Ошибка! Для изменения авторитета вам необходимо набрать ' . num2name($config['edit_rating_point'], $config['score_name']) . '!');
            
gen_red('anketa', '', RND);
        }
    }
    else {

        
$inSes->addMessage('Ошибка! Нельзя изменять авторитет самому себе!');
        
gen_red('anketa', '', RND);
    }
}
else {

    
$inSes->addMessage('Вы не авторизованы, изменять авторитет, могут только обитатели сайта!');
    
gen_red('anketa', '', RND);
}

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