Файл: 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&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 . '&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>';
?>