Файл: moder.php
Строк: 409
<?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 && $user['level'] != 3) {
    header('Location: index.php');
    exit();
}
    echo $div_title . 'Модер-панель' . $div_end;
    echo '<div><a class="mlink" href="?do=users">» Управление пользователями</a></div>
          <div><a class="mlink" href="?do=news">» Управление новостями</a></div>
          ' . ($user['level'] == 3 ? '<div><a class="mlink" 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 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: moder.php?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: moder.php?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="modgx-gazeta_r-'.$a['id'].'"><img src="ico/delete.png" alt=""/></a> ';
                $e = '<a href="modge-gazeta_edit-'.$a['id'].'"><img src="ico/edit.png" 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: moder.php?do=gazeta_r');
                }
            }
            if (mysql_num_rows($sql) == FALSE) {
                err('Раздел не найден!');
            } else {
                $in = mysql_fetch_assoc($sql);
                echo '<FORM method="POST" action="addmod-gazeta_edit-'.$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]',
            `why` = '$whykik',
            `date` = '" . time() . "'");
 mysql_query("UPDATE `users` SET
            `kik` = '$na',
            `whokik` = '$user[id]',
            `whykik` = '$whykik'
             WHERE `id` = '$nk' LIMIT 1");
// запись нарушения
$breachtxt = '<b>' . $user['user'] . '</b> Бан был: (' . date('d/m/Y в H:i', time()) . ')<br/>За: ' . $whykik . '<br/>На период: ' . kikt($na) . '<br/>';
mysql_query("INSERT INTO breach SET `text` = '$breachtxt', user = '$nk'");
  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 href="?do=addnews">» Добавить новость</a><br/>
     ' . ($user['level'] == 3 ? '<a 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-view-' . $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?');
    die();
}
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-view-' . $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, 'mdnew-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="mdnew-delnews-'.$q['id'].'"><img src="ico/delete.png" 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';
?>