Файл: CMS/core/admin/guest.php
Строк: 151
<?php
if (!defined('CMS')) { die('Access Denied!'); }
if (is_admin()) {
if (!empty($_POST['del'])) {
$del = intar($_POST['del']);
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (!empty($del)) {
$del = is_array($del) ? $del : array($del);
$del = implode(',', $del);
$db->query("DELETE FROM ?_guest WHERE `guest_id` IN (" . $del . ");");
$inSes->addMessage('Выбранные сообщения успешно удалены!', 'ok');
}
else $inSes->addMessage('Ошибка! Отсутствуют выбранные сообщения!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
switch ($mod):
default:
show_header('Управление гостевой');
echo '<div class="b">';
echo '<a href="#down">' . icon('down.png') . '</a> ';
echo '<a href="?m=guest&' . RND . '">Обновить</a> | ';
echo '<a href="../guest/' . gen_uri('index', 'p' . $page, RND) . '">Обзор</a><br /></div>';
$onpage = !empty($config['book_num']) ? num($config['book_num']) : 10;
if ($page > 1) $from = ($page - 1) * $onpage; else $from = 0;
$rows = $db->selectPage( $total, "SELECT * FROM ?_guest ORDER BY `guest_time` DESC LIMIT ?d, ?d", $from, $onpage );
if (!empty($rows) && $total > 0) {
echo '<form action="?m=guest&am;page=' . $page . '&rnd=' . $_SESSION['token'] . '" method="post" name="guest">';
foreach($rows as $row) {
echo '<div class="b">';
echo '<div class="img">' . user_avatars($row['guest_user']) . '</div>';
if ($row['guest_user'] == $config['guest_name']) {
echo '<b>' . $row['guest_user'] . '</b> ';
} else {
echo '<b>' . users_anketa($row['guest_user']) . '</b> <small>(' . get_date($row['guest_time']) . ')</small><br />';
echo user_title($row['guest_user']) . ' ' . user_online($row['guest_user']);
}
echo '<br />' . nl2br(bb_code($row['guest_text'])) . '<br />';
if (!empty($row['guest_reply'])) {
echo nl2br(bb_code($row['guest_reply'])) . '<br />';
}
if (!empty($row['guest_edit'])) {
echo '<img src="/images/icons/exclamation_small.gif" alt="" /> ';
echo '<small>Отредактировано: ' . nickname($row['guest_edit']) . ' (' . get_date($row['guest_edit_time']) . ')</small><br />';
}
echo '<span class="data">(' . $row['guest_brow'] . ', ' . $row['guest_ip'] . ')</span><br />';
echo '<input type="checkbox" name="del[]" value="' . $row['guest_id'] . '" /> ';
echo '<a href="?m=edit_guest&id=' . $row['guest_id'] . '&page=' . $page . '">Редактировать</a> | ';
echo '<a href="?m=reply_guest&id=' . $row['guest_id'] . '&page=' . $page . '">Ответить</a></div>';
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="Удалить выбранное" /></div></form>';
echo show_pages('?m=guest');
echo '<div class="b">Всего сообщений: <b>' . num($total) . '</b><br /></div>';
}
else {
show_error('Сообщений еще нет!');
}
if (is_admin(array(101))) {
echo '<div class="b"><a href="#up">' . icon('up.png') . '</a> ';
echo '<a href="?m=clear_guest">Очистить</a> | ';
echo '<a href="?m=set_guest&' . RND . '">Настройки</a><br /></div>';
}
echo <<<JSCRIPT
<script language='JavaScript' type="text/javascript">
<!--
function ckeck_uncheck_all() {
var frm = document.guest;
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 'reply_guest':
$post = $db->selectRow("SELECT * FROM ?_guest WHERE `guest_id` = ? LIMIT 1;", $id);
if (!empty($post)) {
if (!empty($_POST['add_reply'])) {
$text = !empty($_POST['text']) ? check($_POST['text']) : '';
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (cms_strlen($text) >= 5 && cms_strlen($text) < $config['guest_max_text']) {
$text = smiles($text);
$db->query("UPDATE ?_guest SET `guest_reply` = ? WHERE `guest_id` = ?", $text, $id);
$inSes->addMessage('Ответ успешно добавлен!', 'ok');
redirect('./?m=guest&page=' . $page);
}
else $inSes->addMessage('Ошибка! Слишком длинный или короткий текст ответа!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
show_header('Ответ на сообщение');
echo '<div class="b" style="min-height:30px;">';
echo '<div class="img">' . user_avatars($post['guest_user']) . '</div>';
if ($post['guest_user'] == $config['guest_name']) {
echo '<b>' . $post['guest_user'] . '</b> <small>(' . get_date($post['guest_time']) . ')</small>';
} else {
echo '<b>' . users_anketa($post['guest_user']) . '</b> <small>(' . get_date($post['guest_time']) . ')</small><br />';
echo user_title($post['guest_user']) . ' ' . user_online($post['guest_user']);
}
echo '</div>';
echo '<div class="b">Сообщение: ' . nl2br(bb_code($post['guest_text'])) . '</div>';
if (!empty($_GET['code'])) include( MODULES_PATH . 'code.inc.php' );
else if (!empty($_GET['smiles'])) include( MODULES_PATH . 'smiles.inc.php' );
$form = new cmsForm('?m=reply_guest&id=' . $id . '&rnd=' . $_SESSION['token'], 'post', ' name="form" id="reply"');
$form->addCode(blink('*') . ' Сообщение: ');
$form->addCode('<small>[<a href="?m=reply_guest&id=' . $id . '&smiles=1&page=' . $page . '">Смайлы</a>] ');
$form->addCode('[<a href="?m=reply_guest&id=' . $id . '&code=1&page=' . $page . '">ББ-коды</a>]</small>');
$form->addCode(' [<a href="#" onclick="document.reply.markItUp.rows += 5;">+</a>] [<a href="#" onclick="document.reply.markItUp.rows -= 5;">-</a>]');
$form->addTextarea('', 'text', '[red]Ответ:[/red] [b]' . nickname($post['guest_user']) . '[/b] ', ' id="markItUp" style="width:98%;"');
echo $form->Submit('Ответить', 'add_reply');
unset($form);
echo '<div class="b">' . icon('return.png');
echo ' <a href="?m=guest&page=' . $page . '&' . RND . '">Вернуться</a><br /></div>';
}
else {
$inSes->addMessage('Ошибка! Выбранное вами сообщение для ответа не существует!');
redirect('?m=guest&' . RND);
}
break;
case 'edit_guest':
$post = $db->selectRow("SELECT * FROM ?_guest WHERE `guest_id` = ? LIMIT 1;", $id);
if (!empty($post)) {
if (!empty($_POST['submit'])) {
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (cms_strlen(trim($msg)) >= 5 && cms_strlen($msg) < $config['guest_max_text']) {
$msg = smiles($msg);
$db->query("UPDATE ?_guest SET `guest_text` = ?, `guest_edit` = ?, `guest_edit_time` = ?
WHERE `guest_id` = ?", $msg, $log, SITE_TIME, $id);
$inSes->addMessage('Сообщение успешно отредактировано!', 'ok');
redirect('?m=guest&page=' . $page);
}
else $inSes->addMessage('Ошибка! Слишком длинный или короткий текст сообщения!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
show_header('Редактирование сообщения');
$post['guest_text'] = nosmiles($post['guest_text']);
$post['guest_text'] = str_replace(array('<br>', '<br/>', '<br />'), "n", $post['guest_text']);
echo '<div class="b"> <b>' . nickname($post['guest_user']) . '</b> <small>(' . get_date($post['guest_time']) . ')</small><br /></div>';
if (!empty($_GET['code'])) include( MODULES_PATH . 'code.inc.php' );
else if (!empty($_GET['smiles'])) include( MODULES_PATH . 'smiles.inc.php' );
$form = new cmsForm('?m=edit_guest&id=' . $id . '&page=' . $page . '&rnd=' . $_SESSION['token'], 'post', ' name="form" id="edit"');
$form->addCode(blink('*') . ' Сообщение: ');
$form->addCode('<small>[<a href="?m=edit_guest&id=' . $id . '&smiles=1&page=' . $page . '">Смайлы</a>] ');
$form->addCode('[<a href="?m=edit_guest&id=' . $id . '&code=1&page=' . $page . '">ББ-коды</a>]</small>');
$form->addCode(' [<a href="#" onclick="document.edit.markItUp.rows += 5;">+</a>] [<a href="#" onclick="document.edit.markItUp.rows -= 5;">-</a>]');
$form->addTextarea('Сообщение:', 'text', $post['guest_text'], ' id="markItUp" style="width:98%;"');
echo $form->Submit('Редактировать', 'submit');
unset($form);
echo '<div class="b">' . icon('return.png');
echo ' <a href="?m=guest&page=' . $page . '&' . RND . '">Вернуться</a><br /></div>';
}
else {
$inSes->addMessage('Ошибка! Выбранное вами сообщение для ответа не существует!');
redirect('?m=guest&' . RND);
}
break;
case 'clear_guest':
if (!empty($_GET['all_del'])) {
if (is_admin(array(101))) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
$db->query("DELETE FROM ?_guest;");
$inSes->addMessage('Гостевая книга успешно очищена!', 'ok');
redirect('?m=guest&' . RND);
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addMessage('Ошибка! Очищать гостевую могут только суперадмины!');
}
show_header('Очистка гостевой');
echo '<div class="b">';
echo 'Вы уверены что хотите удалить все сообщения в гостевой?<br />';
echo icon('error.gif', 'icons');
echo ' <a href="?m=clear_guest&all_del=1&rnd=' . $_SESSION['token'] . '"><b>Да, уверен!</b></a><br />';
echo icon('return.png') . ' <a href="?m=guest&page=' . $page . '&' . RND . '">Вернуться</a><br /></div>';
break;
endswitch;
echo '<div class="b">' . icon('return.png') . ' <a href="?' . RND . '">В админку</a><br /></div>';
show_footer();
}
else {
redirect('/?' . RND);
}
?>