Файл: modules/user/guestbook.php
Строк: 98
<?php
/****
* @package LiveCMS
* @link livecms.org
* @author MyZik
* @version See attached file VERSION.txt
* @license See attached file LICENSE.txt
* @copyright Copyright (C) LiveCMS Development Team
****/
$lang_pg = load_lng('user_guestbook'); // Подключаем файл языка
/**
* Проверка наличия авторизации
**/
if (!isset($user)) {
require_once(HOME .'/incfiles/header.php');
echo '<div class="error">' . $lang['only_users'] . '</div>';
echo '<div class="home">' .
'<img src="/design/themes/' . $set_user['theme'] . '/images/back.png" alt="" /> <a href="/index.php">' . $lang['back'] . '</a>' .
'</div>';
require_once(HOME .'/incfiles/footer.php');
}
/**
* Задаем ID пользователя
**/
if (!isset($_GET['id']) || !is_numeric($_GET['id']) || num($_GET['id']) == $user['id'])
$ID = $user['id'];
else
$ID = num($_GET['id']);
/**
* Проверяем существование пользователя
**/
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `id` = '$ID'"), 0) == 0) {
require_once(HOME .'/incfiles/header.php');
echo '<div class="error">' . $lang_pg['user_not_exists'] . '</div>';
echo '<div class="home">' .
'<img src="/design/themes/' . $set_user['theme'] . '/images/back.png" alt="" /> <a href="/index.php">' . $lang['back'] . '</a>' .
'</div>';
require_once(HOME .'/incfiles/footer.php');
}
$profile = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '$ID'")); // массив с данными пользователя
$title = $profile['login'] . ' - ' . $lang_pg['guestbook']; // Заголовок страницы
$module = 'users_guestbook'; // Модуль
require_once(HOME .'/incfiles/header.php'); // Подключаем шапку
/**
* Небольшая панель навигации
**/
echo '<div class="title"><a href="/user/profile.php?id=' . $ID . '">' . ($ID == $user['id'] ? $lang_pg['my_profile'] : $lang_pg['profile'] . ' "' . $profile['login'] . '"') . '</a></div>';
/**
* Ответ на сообщение
**/
if (isset($_GET['reply']) && num($_GET['reply']) != $user['id']) {
/**
* Проверяем, верен ли введенный параметр
**/
if (!is_numeric($_GET['reply']))
$err[] = $lang['error_parameter'];
/**
* Проверяем, существует ли пользователь
**/
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `id` = '" . num($_GET['reply']) . "' LIMIT 1"), 0) == 0)
$err[] = $lang_pg['undefined_user'];
/**
* Если не было ошибок, определяем данные пользователя
**/
if (!isset($err)) {
$reply = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '" . num($_GET['reply']) . "'"));
$reply_user = '[b]@' . $reply['login'] . ',[/b] ';
} else {
$reply_user = '';
echo error($err);
}
}
/**
* Удаление сообщения
**/
if (isset($_GET['delete']) && ($user['id'] == $ID || $user['rights'] >= 7)) {
/**
* Проверяем, верен ли введенный параметр
**/
if (!is_numeric($_GET['delete']))
$err[] = $lang['error_parameter'];
/**
* Проверяем, существует ли сообщение
**/
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users_guestbook` WHERE `id` = '" . num($_GET['delete']) . "' LIMIT 1"), 0) == 0)
$err[] = $lang_pg['undefined_message'];
/**
* Если не было ошибок, удаляем сообщение
**/
if (!isset($err)) {
$del_user = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `users_guestbook` WHERE `id` = '" . num($_GET['delete']) . "'"));
mysql_query("UPDATE `users` SET `balls` = `balls` - 1 WHERE `id` = '" . $del_user['user_id'] . "' LIMIT 1");
mysql_query("UPDATE `users` SET `postspg` = `postspg` - 1 WHERE `id` = '" . $user['id'] . "' LIMIT 1");
mysql_query("DELETE FROM `users_guestbook` WHERE `id` = '" . num($_GET['delete']) . "' LIMIT 1");
echo display_message($lang_pg['delete_message_success']);
} else {
echo error($err); // выводим ошибки
}
}
/**
* Добавление сообщения
**/
if (isset($_POST['send']) && isset($user)) {
$message = input(mb_substr($_POST['message'], 0, 1024));
/**
* Проверяем, пустое ли сообщение
**/
if (empty($_POST['message']))
$err[] = $lang_mchat['error_message_length'];
/**
* Проверка на флуд
**/
if (($user['lastpost'] + $cms_set['antiflood_time']) >= time())
$err[] = $lang['error_antiflood'];
/**
* Если не было ошибок, заносим данные
**/
if (!isset($err)) {
mysql_query("INSERT INTO `users_guestbook` (`user_id`, `guest_id`, `time`, `message`) VALUES ('" . $user['id'] . "', '$ID', '" . time() . "', '$message')");
/**
* Начисление баллов и обновление счетчика сообщений
**/
mysql_query("UPDATE `users` SET `balls` = `balls` + 1 WHERE `id` = '" . $user['id'] . "' LIMIT 1");
mysql_query("UPDATE `users` SET `postspg` = `postspg` + 1 WHERE `id` = '" . $user['id'] . "' LIMIT 1");
mysql_query("UPDATE `users` SET `lastpost` = '" . time() . "' WHERE `id` = '" . $user['id'] . "' LIMIT 1");
/**
* Оповещение в журнал
**/
if ($user['id'] != $ID) {
$message = $lang['journal_user'] . ' [url=/user/profile.php?id=' . $user['id'] . ']' . $user['login'] . '[/url] ' . $lang['journal_post_to'] . ' [url=/user/guestbook.php?id=' . $ID . ']' . $lang['journal_guestbook'] . '[/url].';
journal_add($ID, $message);
}
echo display_message($lang_pg['add_success']);
} else {
echo error($err); // выводим ошибки
}
}
/**
* Форма
**/
echo '<div class="main"><form name="message" action="guestbook.php' . ($ID != $user['id'] ? '?id=' . $ID : '') . '" method="post">' .
$lang['enter_message'] . '<br />' .
bb_panel('message', 'message') .
'<textarea name="message">' . $reply_user . '</textarea><br />' .
'<input type="submit" name="send" value="' . $lang['send'] . '" />' .
'</form></div>';
/**
* Настраиваем пагинацию
**/
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `users_guestbook` WHERE `guest_id` = '$ID'"), 0);
$req = mysql_query("SELECT * FROM `users_guestbook` WHERE `guest_id` = '$ID' ORDER BY `id` DESC LIMIT $start, $countMess");
/**
* Если нет результатов, выводим уведомление
**/
if ($total < 1) {
echo '<div class="error">' . $lang_pg['no_messages'] . '</div>';
}
while ($res = mysql_fetch_assoc($req)) {
echo ($i % 2) ? '<div class="list1">' : '<div class="list2">';
$info = ' [' . display_time($res['time']) . ']' . (isset($user) && $user['id'] != $res['user_id'] ? ' <a href="guestbook.php?reply=' . $res['user_id'] . '">' . $lang_pg['reply'] . '</a>' : '');
$body = output(txt($res['message']));
$end = ($user['id'] == $ID || $user['rights'] >= 7 ? '<br />[<a href="guestbook.php?delete=' . $res['id'] . '">' . $lang['delete'] . '</a>]' : '');
echo display_user($res['user_id'], $info, $body, $end) . '</div>';
$i++;
}
/**
* Пагинация
**/
if ($total > $countMess) {
echo '<div class="home">' . display_pagination('guestbook.php?', $start, $total, $countMess) . '</div>';
}
require_once(HOME .'/incfiles/footer.php'); // Подключаем ноги
?>