Вход Регистрация
Файл: 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'] > && $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) >= && 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'], $text1SITE_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$privSITE_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'], $text0SITE_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$privSITE_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(=> 'Плюс'=> 'Минус'));
                    
$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);
}

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