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

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

if (
$is_logged) {

    
$error = '';

    if (!empty(
$_REQUEST['add_contact'])) {

        
$user = !empty($_REQUEST['user']) ? check($_REQUEST['user']) : '';

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

          if (
$user != $log || is_admin(array(101))) {

            
$is_user = (int) $db->selectCell("SELECT `users_id` FROM ?_users WHERE `users_login` = ? LIMIT 1;", $user);

            if (
$is_user > 0) {

              
$total = (int) $db->selectCell("SELECT COUNT(*) FROM ?_users_contact_list WHERE `contact_user` = ?;", $log);

              if (
$total <= $config['max_contact_list']) {

                
$addstr = (int) $db->selectCell("SELECT `contact_id` FROM ?_users_contact_list 
                                                 WHERE `contact_user` = ? AND `contact_name` = ? LIMIT 1;"
, $log, $user);

                if (
$addstr < 1) {

                  if (
$uset['users_timeaddlist'] < SITE_TIME) {

                    
$db->query("INSERT INTO ?_users_contact_list (`contact_user`, `contact_name`, `contact_time`)
                                VALUES (?, ?, ?);"
, $log, $user, SITE_TIME);

                    
$is_ignor = (int) $db->selectCell("SELECT `ignore_id` FROM ?_users_ignor_list 
                                                       WHERE `ignore_user` = ? AND `ignore_name` = ? LIMIT 1;"
, $user, $log);

                    if (
$is_ignor < 1) {

                      
$db->query("UPDATE ?_users SET `users_timeaddlist` = ?
                                  WHERE `users_login` = ?"
, SITE_TIME + 300, $log);

                      
$db->query("UPDATE ?_users SET `users_newprivat` = (`users_newprivat` + 1) WHERE `users_login` = ?", $user);

                      
$textpriv  = '<img src="' . $config['site_url'] . '/images/img/custom.gif" alt="" /> ';
                      
$textpriv .= 'Пользователь [b]' . nickname($log) . '[/b] добавил вас в свой контакт-лист!';

                      
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`)
                                  VALUES (?, ?, ?, ?);"
, $user, $log, $textpriv, SITE_TIME);
            }

                    
$inSes->addMessage('Пользователь успешно добавлен в контакты!', 'ok');
                  }
                  else 
$error = 'Ошибка! Нельзя слишком часто добавлять в контакты, подождите 5 минут!';
                }
                else 
$error = 'Ошибка! Данный пользователь уже есть в контакт-листе!';
              }
              else 
$error = 'Ошибка! В контакт-листе разрешено не более ' . $config['max_contact_list'] . ' пользователей!';
            }
            else 
$error = 'Ошибка! Данного адресата не существует!';
          }
          else 
$error = 'Ошибка! Запрещено добавлять свой логин!';
        }
        else 
$error = 'Ошибка! Неверный идентификатор сессии, повторите действие!';

        if (!empty(
$error)) $inSes->addMessage($error, 'error');
    }

    else if (!empty(
$_POST['del'])) {

        
$del = intar($_POST['del']);

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

          if (!empty(
$del)) {

            if (
is_array($del)) {

              
$del = implode(',', $del);

              
$db->query("DELETE FROM ?_users_contact_list WHERE `contact_id` IN (" . $del . ") AND `contact_user` = ?;", $log);
            }
            else {

              
$db->query("DELETE FROM ?_users_contact_list WHERE `contact_id` = ? AND `contact_user` = ?;", $del, $log);
            }

            
$db->query("OPTIMIZE TABLE ?_users_contact_list, ?_users_ignor_list");

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

    if (!empty(
$_GET['clear'])) {

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

            
$db->query("DELETE FROM ?_users_contact_list WHERE `contact_user` = ?;", $log);

            
$db->query("OPTIMIZE TABLE ?_users_contact_list, ?_users_ignor_list");

            
$inSes->addMessage('Все пользователи успешно удалены из контактов!', 'ok');

            
gen_red('contact', '', RND);
        }
        else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
    }

    switch (
$mod):
    default:

        
show_header('Контакт-лист');

        
$onpage = !empty($config['contact_num']) ? num($config['contact_num']) : 10;

        if (
$page > 1) $from = ($page - 1) * $onpage; else $from = 0;

        
$rows = $db->selectPage($total, "SELECT * FROM ?_users_contact_list WHERE `contact_user` = ?
                                         ORDER BY `contact_time` DESC LIMIT ?d, ?d"
, $log, $from, $onpage);

        if (
$total > 0) {

            echo 
'<form action="?rnd=' . $_SESSION['token'] . '" method="post" name="contact">';

            foreach(
$rows as $row) {

                echo 
'<div class="b"><div class="img">' . user_avatars($row['contact_name']) . '</div>';
                echo 
'<b>' . users_anketa($row['contact_name']) . '</b> <small>(' . get_date($row['contact_time']) . ')</small><br />';
                echo 
user_title($row['contact_name']) . ' ' . user_online($row['contact_name']) . '<br />';

                if (!empty(
$row['contact_text'])) {

                    echo 
'Заметка: ' . $row['contact_text'] . '<br />';
                }

                echo 
'<input type="checkbox" name="del[]" value="' . $row['contact_id'] . '" /> ';
                echo 
'<a href="' . gen_uri('add_privat', '', 'user=' . $row['contact_name']) . '">Написать</a> | ';
                echo 
'<a href="' . gen_uri('note_contact', $row['contact_id']) . '">Заметка</a>';
                echo 
'</div>';
            }

            echo 
'<div class="b">';
            echo 
'<input type="checkbox" name="master_box" title="Отметить всё" onclick="javascript:ckeck_uncheck_all()">';
            echo 
'<input type="submit" class="btns" value="Удалить выбранное" /></form></div>';

            
show_pages('contact', '', 'p');

            echo 
'<div class="b">- Всего в контактах: <b>' . num($total) . '</b><br />';
            echo 
'- Объем контактов: <b>' . num($config['max_contact_list']) . '</b><br /></div>';
        }
        else {

            
show_error('Контакт-лист пуст!');
        }

        echo 
'<div class="b form"><form action="?rnd=' . $_SESSION['token'] . '" method="post">';
        echo 
'Логин юзера:<br /><input type="text" name="user" value="' . request('user') . '" />';
        echo 
'<input type="submit" class="btns" name="add_contact" value="Добавить" /></form></div>';

        if (
$total > 0) {

            echo 
'<div class="b">' . icon('error.gif', 'icons');
            echo 
' <a href="?clear=1&amp;rnd=' . $_SESSION['token'] . '">Очистить список</a><br /></div>';
        }

        echo <<<JSCRIPT

<script language='JavaScript' type="text/javascript">
<!--
function ckeck_uncheck_all() {
    var frm = document.contact;
    if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    else{ frm.master_box.checked = true; }
    for (var i=0;i<frm.elements.length;i++) {
        var elmnt = frm.elements[i];
        if (elmnt.type=='checkbox') {
            if(frm.master_box.checked == true){ elmnt.checked=false; }
            else{ elmnt.checked=true; }
        }
    }
    //if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    //else{ frm.master_box.checked = true; }
}
-->
</script>

JSCRIPT;

    break;
    case 
'note_contact':

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

            
gen_red('contact', '', 'page=' . $page);
        }

        if (!empty(
$id)) {

            
$row = $db->selectRow("SELECT * FROM ?_users_contact_list WHERE `contact_id` = ? AND `contact_user` = ? LIMIT 1;", $id, $log);

            if (!empty(
$row)) {

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

                    
$msg = !empty($_POST['msg']) ? check($_POST['msg']) : '';

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

                        if (
cms_strlen($msg) < 1000) {

                            
$db->query("UPDATE ?_users_contact_list SET `contact_text` = ? 
                                        WHERE `contact_id` = ? AND `contact_user` = ?;"
, $msg, $id, $log);

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

                    
gen_red('contact', '', 'page=' . $page);
                }

                
show_header('Контакт-лист - Заметка');
                echo 
'<div class="b">' . icon('edit.png', 'icons');
                echo 
' Заметка для пользователя <b>' . nickname($row['contact_name']) . '</b> ';
                echo 
user_online($row['contact_name']) . ':<br /></div>';
                
$form = new cmsForm(gen_uri('note_contact', $id, 'page=' . $page . '&amp;rnd=' . $_SESSION['token']));
                
$form->addTextarea('Заметка:', 'msg', $row['contact_text']);
                echo 
$form->Submit(array('Редактировать','Отмена'), array('submit','cancel'));
                unset(
$form);
            }
            else {
                
$inSes->addMessage('Ошибка! Пользователь не найден!');
                
gen_red('contact', '', 'page=' . $page);
            }
        }
        else {
            
$inSes->addMessage('Ошибка! Не выбран пользователь для добавления заметки!');
            
gen_red('contact', '', 'page=' . $page);
        }

    break;
    endswitch;
}
else {

    
show_header('Контакт-лист');
    
show_login('Вы не авторизованы, для просмотра контакт-листа, необходимо');
}

echo 
'<div class="b">' . icon('return.png');
echo 
'<a href="' . gen_uri('ignor', '', RND) . '">Игнор-лист</a> | ';
echo 
'<a href="' . gen_uri('privat', '', RND) . '">Почта</a> | ';
echo 
'<a href="' . gen_uri('friends', '', RND) . '">Друзья</a><br /></div>';

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