Просмотр файла mpanel/status.php

Размер файла: 9.59Kb
  1. <?php
  2. #-----------------------------------------------------#
  3. # ********* ROTORCMS ********* #
  4. # Made by : VANTUZ #
  5. # E-mail : visavi.net@mail.ru #
  6. # Site : http://pizdec.ru #
  7. # WAP-Site : http://visavi.net #
  8. # ICQ : 36-44-66 #
  9. # Вы не имеете право вносить изменения в код скрипта #
  10. # для его дальнейшего распространения #
  11. #-----------------------------------------------------#
  12. require_once ('../includes/start.php');
  13. require_once ('../includes/functions.php');
  14. require_once ('../includes/header.php');
  15. include_once ('../themes/header.php');
  16.  
  17. if (isset($_GET['act'])) {
  18. $act = check($_GET['act']);
  19. } else {
  20. $act = 'index';
  21. }
  22.  
  23. if (is_admin(array(101, 102))) {
  24. show_title('site.png', 'Управление статусами');
  25. $config['newtitle'] = 'Управление статусами';
  26.  
  27. switch ($act):
  28. ############################################################################################
  29. ## Главная страница ##
  30. ############################################################################################
  31. case "index":
  32.  
  33. $querystatus = DB::run() -> query("SELECT * FROM `status` ORDER BY `status_topoint` DESC;");
  34. $status = $querystatus -> fetchAll();
  35. $total = count($status);
  36.  
  37. if ($total > 0) {
  38. echo '<b>Статус</b> — <b>Актив</b><br />';
  39. foreach ($status as $statval) {
  40. echo '<div class="b">';
  41. echo '<img src="../images/img/user.gif" alt="image" /> ';
  42.  
  43. if (empty($statval['status_color'])) {
  44. echo '<b>'.$statval['status_name'].'</b> <small>('.$statval['status_topoint'].'-'.$statval['status_point'].')</small><br />';
  45. } else {
  46. echo '<b><span style="color:'.$statval['status_color'].'">'.$statval['status_name'].'</span></b> <small>('.$statval['status_topoint'].'-'.$statval['status_point'].')</small><br />';
  47. }
  48. echo '</div>';
  49. echo '<a href="status.php?act=edit&amp;id='.$statval['status_id'].'&amp;'.SID.'">Изменить</a> / ';
  50. echo '<a href="status.php?act=del&amp;id='.$statval['status_id'].'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'">Удалить</a><br />';
  51. }
  52. echo '<br />Всего статусов: <b>'.$total.'</b><br /><br />';
  53. } else {
  54. show_error('Статусы еще не назначены!');
  55. }
  56.  
  57. echo '<img src="../images/img/open.gif" alt="image" /> <a href="status.php?act=add&amp;'.SID.'">Создать</a><br />';
  58. break;
  59.  
  60. ############################################################################################
  61. ## Подготовка к редактированию ##
  62. ############################################################################################
  63. case "edit":
  64.  
  65. $id = abs(intval($_GET['id']));
  66.  
  67. $status = DB::run() -> queryFetch("SELECT * FROM `status` WHERE `status_id`=? LIMIT 1;", array($id));
  68.  
  69. if (!empty($status)) {
  70. echo '<b><big>Изменение статуса</big></b><br /><br />';
  71.  
  72. echo '<div class="form">';
  73. echo '<form action="status.php?act=change&amp;id='.$id.'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" method="post">';
  74. echo 'От:<br />';
  75. echo '<input type="text" name="topoint" maxlength="10" value="'.$status['status_topoint'].'" /><br />';
  76. echo 'До:<br />';
  77. echo '<input type="text" name="point" maxlength="10" value="'.$status['status_point'].'" /><br />';
  78. echo 'Статус:<br />';
  79. echo '<input type="text" name="name" maxlength="30" value="'.$status['status_name'].'" /><br />';
  80. echo 'Цвет:<br />';
  81. echo '<input type="text" name="color" maxlength="7" value="'.$status['status_color'].'" /><br />';
  82.  
  83. echo '<input type="submit" value="Изменить" /></form></div><br />';
  84. } else {
  85. show_error('Ошибка! Данного статуса не существует!');
  86. }
  87.  
  88. echo '<img src="../images/img/back.gif" alt="image" /> <a href="status.php?'.SID.'">Вернуться</a><br />';
  89. break;
  90.  
  91. ############################################################################################
  92. ## Редактирование статусов ##
  93. ############################################################################################
  94. case "change":
  95.  
  96. $uid = check($_GET['uid']);
  97. $id = abs(intval($_GET['id']));
  98. $topoint = abs(intval($_POST['topoint']));
  99. $point = abs(intval($_POST['point']));
  100. $name = check($_POST['name']);
  101. $color = check($_POST['color']);
  102.  
  103. if ($uid == $_SESSION['token']) {
  104. if (utf_strlen($name) >= 5 && utf_strlen($name) < 30) {
  105. if (preg_match('|^#+[A-z0-9]{6}$|', $color) || empty($color)) {
  106. DB::run() -> query("UPDATE `status` SET `status_topoint`=?, `status_point`=?, `status_name`=?, `status_color`=? WHERE `status_id`=?;", array($topoint, $point, $name, $color, $id));
  107.  
  108. $_SESSION['note'] = 'Статус успешно изменен!';
  109. redirect("status.php?".SID);
  110. } else {
  111. show_error('Ошибка! Недопустимый формат цвета статуса!');
  112. }
  113. } else {
  114. show_error('Ошибка! Слишком длинное или короткое название статуса!');
  115. }
  116. } else {
  117. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  118. }
  119.  
  120. echo '<img src="../images/img/back.gif" alt="image" /> <a href="status.php?act=edit&amp;id='.$id.'&amp;'.SID.'">Вернуться</a><br />';
  121. break;
  122.  
  123. ############################################################################################
  124. ## Подготовка к добавлению статуса ##
  125. ############################################################################################
  126. case 'add':
  127.  
  128. echo '<b><big>Создание статуса</big></b><br /><br />';
  129.  
  130. echo '<div class="form">';
  131. echo '<form action="status.php?act=create&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" method="post">';
  132. echo 'От:<br />';
  133. echo '<input type="text" name="topoint" maxlength="10" /><br />';
  134. echo 'До:<br />';
  135. echo '<input type="text" name="point" maxlength="10" /><br />';
  136. echo 'Статус:<br />';
  137. echo '<input type="text" name="name" maxlength="30" /><br />';
  138. echo 'Цвет:<br />';
  139. echo '<input type="text" name="color" maxlength="7" /><br />';
  140.  
  141. echo '<input type="submit" value="Создать" /></form></div><br />';
  142.  
  143. echo '<img src="../images/img/back.gif" alt="image" /> <a href="status.php?'.SID.'">Вернуться</a><br />';
  144. break;
  145.  
  146. ############################################################################################
  147. ## Подготовка к добавлению статуса ##
  148. ############################################################################################
  149. case 'create':
  150.  
  151. $uid = check($_GET['uid']);
  152. $topoint = abs(intval($_POST['topoint']));
  153. $point = abs(intval($_POST['point']));
  154. $name = check($_POST['name']);
  155. $color = check($_POST['color']);
  156.  
  157. if ($uid == $_SESSION['token']) {
  158. if (utf_strlen($name) >= 5 && utf_strlen($name) < 30) {
  159. if (preg_match('|^#+[A-z0-9]{6}$|', $color) || empty($color)) {
  160. DB::run() -> query("INSERT INTO `status` (`status_topoint`, `status_point`, `status_name`, `status_color`) VALUES (?, ?, ?, ?);", array($topoint, $point, $name, $color));
  161.  
  162. $_SESSION['note'] = 'Статус успешно добавлен!';
  163. redirect("status.php?".SID);
  164. } else {
  165. show_error('Ошибка! Недопустимый формат цвета статуса!');
  166. }
  167. } else {
  168. show_error('Ошибка! Слишком длинное или короткое название статуса!');
  169. }
  170. } else {
  171. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  172. }
  173.  
  174. echo '<img src="../images/img/back.gif" alt="image" /> <a href="status.php?act=add&amp;'.SID.'">Вернуться</a><br />';
  175. break;
  176.  
  177. ############################################################################################
  178. ## Удаление статуса ##
  179. ############################################################################################
  180. case 'del':
  181.  
  182. $uid = check($_GET['uid']);
  183. $id = abs(intval($_GET['id']));
  184.  
  185. if ($uid == $_SESSION['token']) {
  186. if (!empty($id)) {
  187. DB::run() -> query("DELETE FROM `status` WHERE `status_id`=?;", array($id));
  188.  
  189. $_SESSION['note'] = 'Статус успешно удален!';
  190. redirect("status.php?".SID);
  191. } else {
  192. show_error('Ошибка! Отсутствует выбранный статус для удаления!');
  193. }
  194. } else {
  195. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  196. }
  197.  
  198. echo '<img src="../images/img/back.gif" alt="image" /> <a href="status.php?'.SID.'">Вернуться</a><br />';
  199. break;
  200.  
  201. default:
  202. redirect("status.php?".SID);
  203. endswitch;
  204.  
  205. echo '<img src="../images/img/panel.gif" alt="image" /> <a href="index.php?'.SID.'">В админку</a><br />';
  206.  
  207. } else {
  208. redirect(BASEDIR.'index.php?'.SID);
  209. }
  210.  
  211. include_once ('../themes/footer.php');
  212. ?>