Файл: WM-Koder/moder.php
Строк: 405
<?php
require 'system/sid.php';
require 'system/config.php';
include 'system/user.php';
include 'system/head.php';
include 'system/navigator.php';
whorm(0, 'adminka');
$do = isset($_GET['do']) ? $_GET['do'] : NULL;
switch($do) {
// действия юзера
default:
if ($user['level'] < 2) {
header('Location: index.php?');
exit();
}
echo $div_title . 'Модер-панель' . $div_end;
echo '<div class="mlink"><a href="?do=users">» Управление пользователями</a></div>
<div class="mlink"><a href="?do=news">» Управление новостями</a></div>
' . ($user['level'] == 3 ? '<div class="mlink"><a href="?do=gazeta">» Управление газетой</a></div>' : '');
break;
case gazeta:
echo $div_title . 'Управление газетой' . $div_end;
$num_r = mysql_result(mysql_query("SELECT COUNT(id) FROM `gazeta_razdel`"), 0);
echo '<a class="mlink" href="?do=gazeta_r">» Разделы (' . $num_r . ')</a>';
break;
case gazeta_r:
echo $div_title . 'Разделы' . $div_end;
echo '<FORM method="POST" action="?do=gazeta_r">
<label for="q">Новый раздел</label>:
<br/>
<input type="text" id="q" name="new"/>
<br/>
<input type="submit" name="create" value="Создать"/>
</FORM>' . $block;
// создание раздела
if (isset($_POST['create'])) {
$new = trim(mysql_real_escape_string(check($_POST['new'])));
$em = mysql_query("SELECT `id` FROM `gazeta_razdel` WHERE `name` = '$new' LIMIT 1");
if (empty($new)) {
err('Пустое название раздела!');
} elseif (mysql_num_rows($em) != FALSE) {
err('Раздел с таким названием уже создан!');
} else {
mysql_query("INSERT INTO `gazeta_razdel` SET `name` = '$new'");
header('Location: ?do=gazeta_r');
}
}
// удаление раздела
if (isset($_GET['x'])) {
$x = my_int($_GET['x']);
$sql = mysql_query("SELECT `id` FROM `gazeta_razdel` WHERE `id` = '$x' LIMIT 1");
if (mysql_num_rows($sql) == FALSE) {
err('Раздел не найден!');
} else {
$in = mysql_fetch_assoc(mysql_query("SELECT `path` FROM `gazeta_article` WHERE `uid` = '$x' LIMIT 1"));
// удаление вложеных файлов
if (file_exists($in['path'])) unlink($in['path']);
// удаление статей
mysql_query("DELETE FROM `gazeta_article` WHERE `uid` = '$x'");
// удаление раздела
mysql_query("DELETE FROM `gazeta_razdel` WHERE `id` = '$x' LIMIT 1");
header('Location: ?do=gazeta_r');
}
}
// вывод разделов
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `gazeta_razdel`"), 0);
if ($count != FALSE) {
$n = new navigator($count, 10, '?do=gazeta_r');
$view = mysql_query("SELECT `gazeta_razdel`.*,(SELECT COUNT(id) FROM `gazeta_article` WHERE `gazeta_article`.`uid` = `gazeta_razdel`.`id`) AS c FROM `gazeta_razdel` ORDER BY `gazeta_razdel`.`id` DESC {$n->limit}");
$i = 0;
while($a = mysql_fetch_assoc($view)) {
$d = '<a href="?do=gazeta_r&x='.$a['id'].'"><img src="ico/delete.gif" alt=""/></a> ';
$e = '<a href="?do=gazeta_edit&x='.$a['id'].'"><img src="ico/edit.gif" alt=""/></a> ';
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo $e . $d . $a['name'] . ' (' . $a['c'] . ')' . $div_end;
}
echo $n->navi();
} else {
echo 'Разделы не созданы.<br/>';
}
break;
// Редактирование раздела газеты
case gazeta_edit:
echo $div_title . 'Изменить' . $div_end;
$x = my_int($_GET['x']);
$sql = mysql_query("SELECT * FROM `gazeta_razdel` WHERE `id` = '$x' LIMIT 1");
if (isset($_POST['go'])) {
$edit = trim(mysql_real_escape_string(check($_POST['edit'])));
$em = mysql_query("SELECT `id` FROM `gazeta_razdel` WHERE `name` = '$new' LIMIT 1");
if (empty($edit)) {
err('Пустое название раздела!');
} elseif (mysql_num_rows($edit) != FALSE) {
err('Раздел с таким названием уже создан!');
} else {
mysql_query("UPDATE `gazeta_razdel` SET `name` = '$edit' WHERE `id` = '$x' LIMIT 1");
header('Location: ?do=gazeta_r');
}
}
if (mysql_num_rows($sql) == FALSE) {
err('Раздел не найден!');
} else {
$in = mysql_fetch_assoc($sql);
echo '<FORM method="POST" action="?do=gazeta_edit&x='.$x.'">
<label for="q">Редактировать</label>:
<br/>
<input type="text" id="q" name="edit" value="' . $in['name'] . '"/>
<br/>
<input type="submit" name="go" value="Изменить"/>
</FORM>';
}
break;
case users:
if ($user['level'] < 2) {
header('Location: index.php?');
exit();
}
echo $div_title . 'Управление пользователями' . $div_end;
echo '<FORM method="POST" action="?do=update">
<label for="q">Ник|ID</label>:
<br/>
<input type="text" id="q" name="nick" maxlength="15"/>
<br/>
<input type="submit" name="upd" value="Смотреть"/>
</FORM>';
break;
case update:
if ($user['level'] < 2) {
header('Location: index.php?');
exit();
}
echo $div_title . 'Апдейт' . $div_end;
if (!ctype_digit($_REQUEST['nick'])) {
$nick = trim(mysql_real_escape_string(check($_REQUEST['nick'])));
$select = mysql_query("SELECT * FROM `users` WHERE `user` = '$nick' LIMIT 1");
} elseif (ctype_digit($_REQUEST['nick'])) {
$nick = my_int($_REQUEST['nick']);
$select = mysql_query("SELECT * FROM `users` WHERE `id` = '$nick' LIMIT 1");
}
$inf = mysql_fetch_assoc($select);
if ($inf['id'] != $user['id'] && $inf['id'] == 1 || $user['level'] < $inf['level'] && $inf['id'] != $user['id']) {
err('У Вас нет прав для этого действия!');
include 'system/foot.php';
exit();
}
if (empty($nick) || mysql_num_rows($select) == FALSE) {
err('Пользователь не найден!');
} else {
echo $div_tworazdel . us($inf['id']) . ' найден(а)!
' . $div_end . $div_razdel . '
IP: ' . long2ip($inf['user_ip']) . '<br/>
SOFT: ' . $inf['user_soft'] . '
' . $div_end;
if ($inf['id'] != $user['id']) {
echo '<label>Действие:</label><br/>
<FORM method="POST" action="?do=us_adult">
<select name="adult">
<option value="1">Забанить ник</option>
<option value="2">Забанить ip</option>
</select>
<br/>
<input type="hidden" name="nick" value="' . $inf['id'] . '"/>
<input type="submit" name="ok" value="Далее"/>
</FORM>';
}
}
break;
case us_adult:
if ($user['level'] < 1) {
header('Location: index.php?');
exit();
}
$nick = my_int($_POST['nick']);
$adult = my_int($_POST['adult']);
if (!user_inf($nick)) {
header('Location: index.php?');
die();
}
if ($nick != $user['id'] && $nick == 1 || user_inf($nick, 'level') == 1 || user_inf($nick, 'level') == 2 || user_inf($nick, 'level') == 3 || $user['level'] <= user_inf($nick, 'level') && $nick != $user['id']) {
err('У Вас нет прав для этого действия!');
include_once 'foot.php';
exit();
}
if ($adult == 1) header('Location: ?do=bann&nk=' . $nick);
if ($adult == 2) header('Location: ?do=bann_ip&nk=' . $nick);
die();
break;
// бан ника
case bann:
if ($user['level'] < 1) {
header('Location: index.php?');
exit();
}
echo $div_title . 'Банн' . $div_end;
$nk = my_int($_REQUEST['nk']);
if ($nk != $user['id'] && $nk == 1 || user_inf($nk, 'level') == 1 || user_inf($nk, 'level') == 2 || user_inf($nk, 'level') == 3 || $user['level'] <= user_inf($nk, 'level') && $nk != $user['id']) {
err('У Вас нет прав для этого действия!');
include 'system/foot.php';
exit();
}
if (!user_inf($nk)) {
err('Пользователь не найден!');
include 'system/foot.php';
exit();
}
if (!isset($_POST['ok'])) {
echo '<form action="moder.php?do=bann" method="POST">
<label>Ник|ID:</label>
<br/>
<input type="text" name="nick" value="'.user_inf($nk, 'user').'" title="Ник|ID"/>
<br/>
<label>Время:</label>
<br/>
<input type="text" name="na" title="Время"/>
<br/>
<select name="vremja">
<option value="min">Минут</option>
<option value="chas">Часов</option>
<option value="sut">Суток</option>
<option value="mes">Месяцев</option>
</select>
<br/>
<label>Причина:</label>
<br/>
<input type="text" name="whykik" title="Причина"/>
<br/>
<input type="hidden" name="nk" value="' . $nk . '"/>
<input type="submit" name="ok" value="Блокировать"/>
</form>';
} else {
if ($_POST['na'] < 1 || empty($_POST['na'])) {
err('Не указано время блокировки!');
} elseif (empty($_POST['whykik'])) {
err('Не указана причина блокировки!');
}
else
{
if ($_POST['vremja'] == 'min') $na = (int)$_POST['na'] * 60;
if ($_POST['vremja'] == 'chas') $na = (int)$_POST['na'] * 60 * 60;
if ($_POST['vremja'] == 'sut') $na = (int)$_POST['na'] * 60 * 60 * 24;
if ($_POST['vremja'] == 'mes') $na = (int)$_POST['na'] * 60 * 60 * 24 * 30;
$whykik = trim(mysql_real_escape_string(check($_POST['whykik'])));
$na = time() + $na;
// запись в логи
mysql_query("INSERT INTO `adm_logs` SET
`type` = 'bann_nick',
`user` = '$nk',
`who` = '$user[id]',
`date` = '" . time() . "'");
mysql_query("UPDATE `users` SET
`kik` = '$na',
`whokik` = '$user[id]',
`whykik` = '$whykik'
WHERE `id` = '$nk' LIMIT 1");
msg('Пользователь заблокирован на ' . kikt($na) . ' за ' . $whykik);
}
}
break;
// бан айпи
case bann_ip:
if ($user['level'] < 1) {
header('Location: index.php?');
exit();
}
echo $div_title . 'Банн' . $div_end;
$nk = my_int($_GET['nk']);
if ($nk != $user['id'] && $nk == 1 || user_inf($nk, 'level') == 1 || user_inf($nk, 'level') == 2 || user_inf($nk, 'level') == 3 || $user['level'] <= user_inf($nk, 'level') && $nk != $user['id']) {
err('У Вас нет прав для этого действия!');
include 'system/foot.php';
exit();
}
if (!user_inf($nk)) {
err('Пользователь не найден!');
include 'system/foot.php';
exit();
}
// запись в логи
mysql_query("INSERT INTO `adm_logs` SET
`type` = 'bann_ip',
`user` = '$nk',
`who` = '$user[id]',
`date` = '" . time() . "'");
mysql_query("INSERT INTO `bannlist` SET
`id` = '" . mt_rand(1000000, 9999999) . "',
`ip` = '" . long2ip(user_inf($nk, 'user_ip')) . "',
`who` = '" . user_inf($nk, 'id') . "'");
msg('IP пользователя заблокировано!');
break;
case news:
if ($user['level'] < 2) {
header('Location: index.php?');
exit();
}
echo $div_title . 'Новости' . $div_end .'
<a class="mlink" href="?do=addnews">» Добавить новость</a>
' . ($user['level'] == 3 ? '<a class="mlink" href="?do=delnews">» Удалить новость</a>' : '');
break;
// добавление новостей
case addnews:
if ($user['level'] < 2) {
header('Location: index.php?');
exit();
}
echo $div_title . 'Новости' . $div_end;
if (isset($_POST['ok'])) {
$name = trim(mysql_real_escape_string(check($_POST['name'])));
$content = trim(mysql_real_escape_string(check($_POST['content'])));
$empnews = mysql_query("SELECT `id` FROM `news` WHERE `name` = '$name' LIMIT 1");
if (empty($name)) {
err('Не заполнено название!');
} elseif (empty($content)) {
err('Не заполнено содержание!');
} elseif (mysql_num_rows($empnews) != FALSE) {
err('Такая новость уже имеется!');
} else {
mysql_query("INSERT INTO `news` SET
`date` = '" . time() . "',
`name` = '$name',
`content` = '$content'");
$lid = mysql_insert_id();
header('Location: news.php?do=view&i=' . $lid);
}
}
echo '<FORM method="POST" action="?do=addnews">
<label>Название:</label><br/>
<input type="text" name="name"/>
<br/>
<label>Содержание:</label><br/>
<textarea name="content" cols="30" rows="5" style="width: 99%;"></textarea>
<br/>
<input type="submit" name="ok" value="Создать"/>
</FORM>';
break;
// редактор новостей
case editnews:
if ($user['level'] < 2) {
header('Location: index.php?');
exit();
}
echo $div_title . 'Новости' . $div_end;
$i = my_int($_REQUEST['i']);
$n = mysql_query("SELECT * FROM `news` WHERE `id` = '$i' LIMIT 1");
$inf = mysql_fetch_assoc($n);
$empnews = mysql_query("SELECT `id` FROM `news` WHERE `name` = '$name' LIMIT 1");
if (isset($_POST['ok'])) {
$name = trim(mysql_real_escape_string(check($_POST['name'])));
$content = trim(mysql_real_escape_string(check($_POST['content'])));
if (empty($name)) {
err('Не заполнено название!');
} elseif (empty($content)) {
err('Не заполнено содержание!');
} elseif (mysql_num_rows($empnews) != FALSE) {
err('Такая новость уже имеется!');
} else {
mysql_query("UPDATE `news` SET `name` = '$name', `content` = '$content', `edit` = '" . time() . "' WHERE `id` = '$i'");
header('Location: news.php?do=view&i=' . $i);
}
}
if (mysql_num_rows($n) == FALSE) {
header('Location: news.php?');
} else {
echo 'Редактировать:<br/>
<FORM method="POST" action="?do=editnews">
<input type="text" name="name" value="' . $inf['name'] . '"/>
<br/><br/>
<textarea name="content" cols="30" rows="5" style="width: 99%;">' . back_bb($inf['content']) . '</textarea>
<br/>
<input type="hidden" name="i" value="' . $i . '"/>
<input type="submit" name="ok" value="Изменить"/>
</FORM>';
}
break;
// удаление новостей
case delnews:
if ($user['level'] != 3) {
header('Location: index.php?');
exit();
}
echo $div_title . 'Новости' . $div_end;
if (isset($_GET['i'])) {
$i = my_int($_GET['i']);
$n = mysql_query("SELECT * FROM `news` WHERE `id` = '$i' LIMIT 1");
if (mysql_num_rows($n) == FALSE) {
header('Location: news.php?');
} else {
mysql_query("DELETE FROM `news` WHERE `id` = '$i' LIMIT 1");
mysql_query("DELETE FROM `newscomm` WHERE `id_new` = '$i'");
mysql_query("DELETE FROM `rating_news` WHERE `uid` = '$i'");
msg('Новость удалена!');
}
}
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `news`"), 0);
if ($count != false) {
$n = new navigator($count, 10, '?do=editnews&');
$result = mysql_query("SELECT * FROM `news` ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($q = mysql_fetch_assoc($result)) {
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo '<a href="?do=delnews&i='.$q['id'].'"><img src="ico/delete.gif" alt=""/></a> ' . $q['name'] . $div_end;
}
echo $n->navi();
} else {
echo 'Новостей нет!<br/>';
}
break;
}
echo $block . '<b>« <a href="moder.php?">Модер-панель</a></b>';
include 'system/foot.php';
?>