' . $lng['guestbook_closed'] . '

'; require('../incfiles/end.php'); exit; } switch ($act) { case 'delpost': /* ----------------------------------------------------------------- Удаление отдельного поста ----------------------------------------------------------------- */ if ($rights >= 6 && $id) { if (isset($_GET['yes'])) { mysql_query("DELETE FROM `guest` WHERE `id`='" . $id . "'"); header("Location: index.php"); } else { echo '
' . $lng['guestbook'] . ' | ' . $lng['delete_message'] . '
' . '

' . $lng['delete_confirmation'] . '?
' . '' . $lng['delete'] . ' | ' . '' . $lng['cancel'] . '

'; } } break; case 'say': /* ----------------------------------------------------------------- Добавление нового поста ----------------------------------------------------------------- */ $admset = isset($_SESSION['ga']) ? 1 : 0; // Задаем куда вставляем, в Админ клуб (1), или в Гастивуху (0) // Принимаем и обрабатываем данные $name = isset($_POST['name']) ? functions::checkin(mb_substr(trim($_POST['name']), 0, 20)) : ''; $msg = isset($_POST['msg']) ? functions::checkin(mb_substr(trim($_POST['msg']), 0, 5000)) : ''; $trans = isset($_POST['msgtrans']) ? 1 : 0; $code = isset($_POST['code']) ? trim($_POST['code']) : ''; $from = $user_id ? $login : mysql_real_escape_string($name); // Транслит сообщения if ($trans) $msg = functions::trans($msg); // Проверяем на ошибки $error = array(); $flood = FALSE; if (!isset($_POST['token']) || !isset($_SESSION['token']) || $_POST['token'] != $_SESSION['token']) { $error[] = $lng['error_wrong_data']; } if (!$user_id && empty($name)) $error[] = $lng['error_empty_name']; if (empty($msg)) $error[] = $lng['error_empty_message']; if ($ban['1'] || $ban['13']) $error[] = $lng['access_forbidden']; // CAPTCHA для гостей if (!$user_id && (empty($code) || mb_strlen($code) < 4 || $code != $_SESSION['code'])) $error[] = $lng['error_wrong_captcha']; unset($_SESSION['code']); if ($user_id) { // Антифлуд для зарегистрированных пользователей $flood = functions::antiflood(); } else { // Антифлуд для гостей $req = mysql_query("SELECT `time` FROM `guest` WHERE `ip` = '$ip' AND `browser` = '" . mysql_real_escape_string($agn) . "' AND `time` > '" . (time() - 60) . "'"); if (mysql_num_rows($req)) { $res = mysql_fetch_assoc($req); $flood = time() - $res['time']; } } if ($flood) $error = $lng['error_flood'] . ' ' . $flood . ' ' . $lng['seconds']; if (!$error) { // Проверка на одинаковые сообщения $req = mysql_query("SELECT * FROM `guest` WHERE `user_id` = '$user_id' ORDER BY `time` DESC"); $res = mysql_fetch_array($req); if ($res['text'] == $msg) { header("location: index.php"); exit; } } if (!$error) { // Вставляем сообщение в базу mysql_query("INSERT INTO `guest` SET `adm` = '$admset', `time` = '" . time() . "', `user_id` = '" . ($user_id ? $user_id : 0) . "', `name` = '$from', `text` = '" . mysql_real_escape_string($msg) . "', `ip` = '" . core::$ip . "', `browser` = '" . mysql_real_escape_string($agn) . "', `otvet` = '' "); // Фиксируем время последнего поста (антиспам) if ($user_id) { $postguest = $datauser['postguest'] + 1; mysql_query("UPDATE `users` SET `postguest` = '$postguest', `lastpost` = '" . time() . "' WHERE `id` = '$user_id'"); } header('location: index.php'); } else { echo functions::display_error($error, '' . $lng['back'] . ''); } break; case 'otvet': /* ----------------------------------------------------------------- Добавление "ответа Админа" ----------------------------------------------------------------- */ if ($rights >= 6 && $id) { if (isset($_POST['submit']) && isset($_POST['token']) && isset($_SESSION['token']) && $_POST['token'] == $_SESSION['token'] ) { $reply = isset($_POST['otv']) ? functions::checkin(mb_substr(trim($_POST['otv']), 0, 5000)) : ''; mysql_query("UPDATE `guest` SET `admin` = '$login', `otvet` = '" . mysql_real_escape_string($reply) . "', `otime` = '" . time() . "' WHERE `id` = '$id' "); header("location: index.php"); } else { echo '
' . $lng['guestbook'] . ' | ' . $lng['reply'] . '
'; $req = mysql_query("SELECT * FROM `guest` WHERE `id` = '$id'"); $res = mysql_fetch_assoc($req); $token = mt_rand(1000, 100000); $_SESSION['token'] = $token; echo '' . '
' . $lng['back'] . '
'; } } break; case 'edit': /* ----------------------------------------------------------------- Редактирование поста ----------------------------------------------------------------- */ if ($rights >= 6 && $id) { if (isset($_POST['submit']) && isset($_POST['token']) && isset($_SESSION['token']) && $_POST['token'] == $_SESSION['token'] ) { $req = mysql_query("SELECT `edit_count` FROM `guest` WHERE `id`='$id'"); $res = mysql_fetch_array($req); $edit_count = $res['edit_count'] + 1; $msg = isset($_POST['msg']) ? functions::checkin(mb_substr(trim($_POST['msg']), 0, 5000)) : ''; mysql_query("UPDATE `guest` SET `text` = '" . mysql_real_escape_string($msg) . "', `edit_who` = '$login', `edit_time` = '" . time() . "', `edit_count` = '$edit_count' WHERE `id` = '$id' "); header("location: index.php"); } else { $token = mt_rand(1000, 100000); $_SESSION['token'] = $token; $req = mysql_query("SELECT * FROM `guest` WHERE `id` = '$id'"); $res = mysql_fetch_assoc($req); $text = htmlentities($res['text'], ENT_QUOTES, 'UTF-8'); echo '
' . $lng['guestbook'] . ' | ' . $lng['edit'] . '
' . '
' . '
' . '

' . $lng['author'] . ': ' . $res['name'] . '

'; echo bbcode::auto_bb('form', 'msg'); echo '

' . '

' . '' . '
' . '
' . $lng['translit'] . ' | ' . $lng['smileys'] . '
' . '

' . $lng['back'] . '

'; } } break; case 'clean': /* ----------------------------------------------------------------- Очистка Гостевой ----------------------------------------------------------------- */ if ($rights >= 7) { if (isset($_POST['submit'])) { // Проводим очистку Гостевой, согласно заданным параметрам $adm = isset($_SESSION['ga']) ? 1 : 0; $cl = isset($_POST['cl']) ? intval($_POST['cl']) : ''; switch ($cl) { case '1': // Чистим сообщения, старше 1 дня mysql_query("DELETE FROM `guest` WHERE `adm`='$adm' AND `time` < '" . (time() - 86400) . "'"); echo '

' . $lng['clear_day_ok'] . '

'; break; case '2': // Проводим полную очистку mysql_query("DELETE FROM `guest` WHERE `adm`='$adm'"); echo '

' . $lng['clear_full_ok'] . '

'; break; default : // Чистим сообщения, старше 1 недели mysql_query("DELETE FROM `guest` WHERE `adm`='$adm' AND `time`<='" . (time() - 604800) . "';"); echo '

' . $lng['clear_week_ok'] . '

'; } mysql_query("OPTIMIZE TABLE `guest`"); echo '

' . $lng['guestbook'] . '

'; } else { // Запрос параметров очистки echo '
' . $lng['guestbook'] . ' | ' . $lng['clear'] . '
' . '' . '
' . $lng['cancel'] . '
'; } } break; case 'ga': /* ----------------------------------------------------------------- Переключение режима работы Гостевая / Админ-клуб ----------------------------------------------------------------- */ if ($rights >= 1) { if (isset($_GET['do']) && $_GET['do'] == 'set') { $_SESSION['ga'] = 1; } else { unset($_SESSION['ga']); } } default: /* ----------------------------------------------------------------- Отображаем Гостевую, или Админ клуб ----------------------------------------------------------------- */ if (!$set['mod_guest']) echo '
' . $lng['guestbook_closed'] . '
'; echo '
' . $lng['guestbook'] . '
'; if ($rights > 0) { $menu = array(); $menu[] = isset($_SESSION['ga']) ? '' . $lng['guestbook'] . '' : '' . $lng['guestbook'] . ''; $menu[] = isset($_SESSION['ga']) ? '' . $lng['admin_club'] . '' : '' . $lng['admin_club'] . ''; if ($rights >= 7) $menu[] = '' . $lng['clear'] . ''; echo '
' . functions::display_menu($menu) . '
'; } // Форма ввода нового сообщения if (($user_id || $set['mod_guest'] == 2) && !isset($ban['1']) && !isset($ban['13'])) { $token = mt_rand(1000, 100000); $_SESSION['token'] = $token; echo '
'; if (!$user_id) echo $lng['name'] . ' (max 25):

'; echo '' . $lng['message'] . ' (max 5000):
'; echo bbcode::auto_bb('form', 'msg'); echo '
'; if ($set_user['translit']) echo ' ' . $lng['translit'] . '
'; if (!$user_id) { // CAPTCHA для гостей echo '' . $lng['captcha'] . '
' . ' ' . $lng['captcha'] . '
'; } echo '' . '
'; } else { echo '
' . $lng['access_guest_forbidden'] . '
'; } if (isset($_SESSION['ga']) && $rights >= "1") { $req = mysql_query("SELECT COUNT(*) FROM `guest` WHERE `adm`='1'"); } else { $req = mysql_query("SELECT COUNT(*) FROM `guest` WHERE `adm`='0'"); } $total = mysql_result(mysql_query("SELECT COUNT(*) FROM `guest` WHERE `adm`='" . (isset($_SESSION['ga']) ? 1 : 0) . "'"), 0); echo '
' . $lng['comments'] . '
'; if ($total > $kmess) echo '
' . functions::display_pagination('index.php?', $start, $total, $kmess) . '
'; if ($total) { if (isset($_SESSION['ga']) && $rights >= "1") { // Запрос для Админ клуба echo '
АДМИН-КЛУБ
'; $req = mysql_query("SELECT `guest`.*, `guest`.`id` AS `gid`, `users`.`rights`, `users`.`lastdate`, `users`.`sex`, `users`.`status`, `users`.`datereg`, `users`.`id` FROM `guest` LEFT JOIN `users` ON `guest`.`user_id` = `users`.`id` WHERE `guest`.`adm`='1' ORDER BY `time` DESC LIMIT " . $start . "," . $kmess); } else { // Запрос для обычной Гастивухи $req = mysql_query("SELECT `guest`.*, `guest`.`id` AS `gid`, `users`.`rights`, `users`.`lastdate`, `users`.`sex`, `users`.`status`, `users`.`datereg`, `users`.`id` FROM `guest` LEFT JOIN `users` ON `guest`.`user_id` = `users`.`id` WHERE `guest`.`adm`='0' ORDER BY `time` DESC LIMIT " . $start . "," . $kmess); } for ($i = 0; $res = mysql_fetch_assoc($req); ++$i) { $text = ''; echo $i % 2 ? '
' : '
'; if (!$res['id']) { // Запрос по гостям $req_g = mysql_query("SELECT `lastdate` FROM `cms_sessions` WHERE `session_id` = '" . md5($res['ip'] . $res['browser']) . "' LIMIT 1"); $res_g = mysql_fetch_assoc($req_g); $res['lastdate'] = $res_g['lastdate']; } // Время создания поста $text = ' (' . functions::display_date($res['time']) . ')'; if ($res['user_id']) { // Для зарегистрированных показываем ссылки и смайлы $post = functions::checkout($res['text'], 1, 1); if ($set_user['smileys']) $post = functions::smileys($post, $res['rights'] >= 1 ? 1 : 0); } else { // Для гостей обрабатываем имя и фильтруем ссылки $res['name'] = functions::checkout($res['name']); $post = functions::antilink(functions::checkout($res['text'], 0, 2)); } if ($res['edit_count']) { // Если пост редактировался, показываем кем и когда $post .= '
Изм. ' . $res['edit_who'] . ' (' . functions::display_date($res['edit_time']) . ') [' . $res['edit_count'] . ']'; } if (!empty($res['otvet'])) { // Ответ Администрации $otvet = functions::checkout($res['otvet'], 1, 1); if ($set_user['smileys']) $otvet = functions::smileys($otvet, 1); $post .= '
' . $res['admin'] . ': (' . functions::display_date($res['otime']) . ')
' . $otvet . '
'; } if ($rights >= 6) { $subtext = '' . $lng['reply'] . '' . ($rights >= $res['rights'] ? ' | ' . $lng['edit'] . ' | ' . $lng['delete'] . '' : ''); } else { $subtext = ''; } $arg = array( 'header' => $text, 'body' => $post, 'sub' => $subtext ); echo functions::display_user($res, $arg); echo '
'; } } else { echo ''; } echo '
' . $lng['total'] . ': ' . $total . '
'; if ($total > $kmess) { echo '
' . functions::display_pagination('index.php?', $start, $total, $kmess) . '
' . '

' . '

'; } break; }