Просмотр файла admin/users/ban.php

Размер файла: 4.8Kb
  1. <?php
  2. include '../../engine/includes/start.php';
  3.  
  4. if (!$moder)
  5. Core::stop();
  6.  
  7. $set['title'] = 'Забаненные юзеры';
  8.  
  9. include incDir.'head.php';
  10.  
  11. ?>
  12. <table width="100%"><tr>
  13.  
  14. <td class="<?=$act == 'list' ? 'p_t' : 'p_m'?>"><a href="?act=list" style="display:block">Список</a></td>
  15.  
  16. <td class="<?=$act == 'ban' ? 'p_t' : 'p_m'?>"><a href="?act=ban" style="display:block">Забанить</a></td>
  17.  
  18. </tr></table>
  19. <?php
  20.  
  21. switch($act)
  22. {
  23. case 'unset':
  24. if ($sql->query('SELECT COUNT(*) FROM `ban` WHERE `user_id` = '.intval($_GET['user_id']).' AND `id` = '.$id)->result())
  25. {
  26. $sql->query('UPDATE `ban` SET `time` = '.$time.' WHERE `id` = '.$id.' LIMIT 1');
  27. Core::msg_show('Время бана обнулено');
  28. }
  29. break;
  30.  
  31. case 'ban':
  32.  
  33. if (isset($_GET['new'], $_SESSION['edit_user_id']))
  34. {
  35. unset($_SESSION['edit_user_id']);
  36. }
  37.  
  38. if (isset($_POST['user']) || $id)
  39. {
  40. $_SESSION['edit_user_id'] =
  41. $sql->query('SELECT `id` FROM `user` WHERE `'.(Core::form('order') == 'id' || $id ? 'id' : 'nick').'` = "'.($id ? $id : Core::form('user')).'" LIMIT 1')->result();
  42. if ($_SESSION['edit_user_id'] == 0 || $_SESSION['edit_user_id'] == $user_id)
  43. {
  44. unset($_SESSION['edit_user_id']);
  45. Core::msg_show('Поиск не дал результатов', 'error');
  46. //Include incDir . 'foot.php';
  47. }
  48. }
  49.  
  50. if (!isset($_SESSION['edit_user_id']))
  51. {
  52. ?>
  53. <div class="menu_razd">Забанить пользователя</div>
  54. <form method="post" action="?act=ban">
  55. Искать пользователя по:<br />
  56. <select name="order">
  57. <option value="id">Id</option>
  58. <option value="nick">Ник</option>
  59. </select><br />
  60. Данные для поиска:<br />
  61. <input type="text" name="user" value=""/><br />
  62. <input type="submit" value="Искать"/>
  63. </form>
  64. <?php
  65. }
  66. else
  67. {
  68. $editor = Core::get_user($_SESSION['edit_user_id']);
  69. echo '<div class="post">Забанить пользователя '.$editor['nick'].', <a href="?act=ban&amp;new">изменить</a></div>';
  70.  
  71. if (isset($_POST['ban_pr'], $_POST['time'], $_POST['vremja']))
  72. {
  73. $timeban = $time;
  74.  
  75. if ($_POST['vremja']=='min')$timeban+=intval($_POST['time'])*60;
  76. elseif ($_POST['vremja']=='chas')$timeban+=intval($_POST['time'])*60*60;
  77. elseif ($_POST['vremja']=='sut')$timeban+=intval($_POST['time'])*60*60*24;
  78. elseif ($_POST['vremja']=='mes')$timeban+=intval($_POST['time'])*60*60*24*30;
  79.  
  80. if ($timeban < $time) $err[]='Ошибка времени бана';
  81.  
  82. $prich = Core::form('ban_pr');
  83. $pr_lenght = mb_strlen($prich);
  84. if ($pr_lenght > 1024)
  85. {
  86. $err[]='Сообщение слишком длинное';
  87. }
  88. if ($pr_lenght < 10)
  89. {
  90. $err[]='Необходимо подробнее указать причину';
  91. }
  92.  
  93. if (!isset($err))
  94. {
  95. $sql->query("INSERT INTO `ban` (`user_id`, `moder_id`, `prich`, `time`) VALUES ('$editor[id]', '$user[id]', '$prich', '$timeban')");
  96. Core::msg_show('Пользователь успешно забанен', 'msg');
  97. }
  98. else
  99. Core::msg_show($err);
  100. }
  101.  
  102. ?>
  103. <form action="?act=ban" method="post">
  104. Причина:<br />
  105. <textarea name="ban_pr"></textarea><br />
  106. Время бана:<br />
  107. <input type='text' name='time' title='Время бана' value='10' maxlength='11' size='3' />
  108. <select class='form' name="vremja">
  109. <option value='min'>Минуты</option>
  110. <option value='chas'>Часы</option>
  111. <option value='sut'>Сутки</option>
  112. <option value='mes'>Месяцы</option>
  113. </select><br />
  114. <input type='submit' value='Забанить' />
  115. </form>
  116. <?php
  117. }
  118. break;
  119.  
  120. default:
  121.  
  122. Core::get(array('page.class', 'text.class'));
  123. $total = $sql->query("SELECT COUNT(*) FROM `ban` WHERE `time` > " . $time)->result();
  124. $page = new page($total, $set['p_str']);
  125. $i = 0;
  126.  
  127. if ($total == 0)
  128. {
  129. echo '<div class="p_t">Нет нарушений</div>';
  130. }
  131.  
  132. $sql->query('SELECT
  133. `ban`.`id` as `ban_id`, `ban`.`time`, `ban`.`prich`,
  134. `user`.`id`, `user`.`nick`, `user`.`pol`
  135. FROM `ban` LEFT JOIN `user`
  136. ON `ban`.`user_id` = `user`.`id`
  137. WHERE `time` > '.$time.'
  138. ORDER BY `time` DESC LIMIT '.$page->limit());
  139.  
  140. while ($post = $sql->fetch())
  141. {
  142. echo '<div class="'.($i++ % 2 ? 'p_m' : 'p_t').'"> '.
  143. Core::user_show($post, array(
  144. 'status' => 'до ' . Core::time($post['time']),
  145. 'post' => text::output($post['prich']).'<br /><a href="?act=unset&amp;id='.$post['ban_id'].'&amp;user_id='.$post['id'].'">Снять бан</a>')) . '</div>';
  146. }
  147.  
  148. $page->display('?');
  149. break;
  150. }
  151. if ($creator)
  152. {
  153. echo '
  154. <a href="/admin/?act=users"><div class="link">Пользователи</div></a>
  155. <a href="/admin/"><div class="link">Админка</div></a>';
  156. }
  157. include incDir . 'foot.php';