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

Размер файла: 12.2Kb
  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. $config['postevents'] = 10; // Событий на страницу
  18.  
  19. $act = (isset($_GET['act'])) ? check($_GET['act']) : 'index';
  20. $id = (isset($_GET['id'])) ? abs(intval($_GET['id'])) : 0;
  21. $start = (isset($_GET['start'])) ? abs(intval($_GET['start'])) : 0;
  22.  
  23. if (is_admin()) {
  24. show_title('news.png', 'Управление событиями');
  25.  
  26. switch ($act):
  27. ############################################################################################
  28. ## Главная страница ##
  29. ############################################################################################
  30. case 'index':
  31. echo '<div class="form"><a href="/events/index.php?'.SID.'">Обзор событий</a></div>';
  32.  
  33. $total = DB::run() -> querySingle("SELECT count(*) FROM `events`;");
  34.  
  35. if ($total > 0) {
  36. if ($start >= $total) {
  37. $start = last_page($total, $config['postevents']);
  38. }
  39.  
  40. $queryevents = DB::run() -> query("SELECT * FROM `events` ORDER BY `event_time` DESC LIMIT ".$start.", ".$config['postevents'].";");
  41.  
  42. echo '<form action="events.php?act=del&amp;start='.$start.'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" method="post">';
  43.  
  44. while ($data = $queryevents -> fetch()) {
  45. echo '<div class="b">';
  46.  
  47. $icon = (empty($data['event_closed'])) ? 'document_plus.gif' : 'document_minus.gif';
  48. echo '<img src="/images/img/'.$icon.'" alt="image" /> ';
  49.  
  50. echo '<b><a href="/events/index.php?act=read&amp;id='.$data['event_id'].'&amp;'.SID.'">'.$data['event_title'].'</a></b><small> ('.date_fixed($data['event_time']).')</small><br />';
  51. echo '<input type="checkbox" name="del[]" value="'.$data['event_id'].'" /> ';
  52. echo '<a href="events.php?act=edit&amp;id='.$data['event_id'].'&amp;start='.$start.'&amp;'.SID.'">Редактировать</a></div>';
  53.  
  54. if (!empty($data['event_image'])) {
  55. echo '<div class="img"><a href="/upload/events/'.$data['event_image'].'">'.resize_image('upload/events/', $data['event_image'], 75, $data['event_title']).'</a></div>';
  56. }
  57.  
  58. if (!empty($data['event_top'])){
  59. echo '<div class="right"><span style="color:#ff0000">На главной</span></div>';
  60. }
  61.  
  62. if(stristr($data['event_text'], '[cut]')) {
  63. $data['event_text'] = current(explode('[cut]', $data['event_text'])).' <a href="/events/index.php?act=read&amp;id='.$data['event_id'].'&amp;'.SID.'">Читать далее &raquo;</a>';
  64. }
  65.  
  66. echo '<div>'.bb_code($data['event_text']).'</div>';
  67.  
  68. echo '<div style="clear:both;">Добавлено: '.profile($data['event_author']).'<br />';
  69. echo '<a href="/events/index.php?act=comments&amp;id='.$data['event_id'].'&amp;'.SID.'">Комментарии</a> ('.$data['event_comments'].') ';
  70. echo '<a href="/events/index.php?act=end&amp;id='.$data['event_id'].'&amp;'.SID.'">&raquo;</a></div>';
  71. }
  72.  
  73. echo '<br /><input type="submit" value="Удалить выбранное" /></form>';
  74.  
  75. page_strnavigation('events.php?', $config['postevents'], $start, $total);
  76.  
  77. echo 'Всего событий: <b>'.(int)$total.'</b><br /><br />';
  78. } else {
  79. show_error('Событий еще нет!');
  80. }
  81.  
  82. echo '<img src="/images/img/open.gif" alt="image" /> <a href="/events/index.php?act=new&amp;'.SID.'">Добавить событие</a><br />';
  83.  
  84. if (is_admin(array(101))) {
  85. echo '<img src="/images/img/reload.gif" alt="image" /> <a href="events.php?act=restatement&amp;uid='.$_SESSION['token'].'&amp;'.SID.'">Пересчитать</a><br />';
  86. }
  87. break;
  88.  
  89. ############################################################################################
  90. ## Подготовка к редактированию события ##
  91. ############################################################################################
  92. case 'edit':
  93. $dataevent = DB::run() -> queryFetch("SELECT * FROM `events` WHERE `event_id`=? LIMIT 1;", array($id));
  94.  
  95. if (!empty($dataevent)) {
  96. $dataevent['event_text'] = yes_br(nosmiles($dataevent['event_text']));
  97.  
  98. echo '<b><big>Редактирование</big></b><br /><br />';
  99.  
  100. echo '<div class="form cut">';
  101. echo '<form action="events.php?act=change&amp;id='.$id.'&amp;start='.$start.'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" method="post" enctype="multipart/form-data">';
  102. echo 'Заголовок:<br />';
  103. echo '<input type="text" name="title" size="50" maxlength="50" value="'.$dataevent['event_title'].'" /><br />';
  104. echo '<textarea id="markItUp" cols="25" rows="10" name="msg">'.$dataevent['event_text'].'</textarea><br />';
  105.  
  106. if (!empty($dataevent['event_image']) && file_exists(BASEDIR.'upload/events/'.$dataevent['event_image'])){
  107.  
  108. echo '<a href="'.BASEDIR.'upload/events/'.$dataevent['event_image'].'">'.resize_image('upload/events/', $dataevent['event_image'], 75, $dataevent['event_title']).'</a><br />';
  109. echo '<b>'.$dataevent['event_image'].'</b> ('.read_file(BASEDIR.'upload/events/'.$dataevent['event_image']).')<br /><br />';
  110. }
  111.  
  112. echo 'Прикрепить картинку:<br /><input type="file" name="image" /><br />';
  113. echo '<i>gif, jpg, jpeg, png и bmp (Не более '.formatsize($config['filesize']).' и '.$config['fileupfoto'].'px)</i><br /><br />';
  114.  
  115. $checked = ($dataevent['event_closed'] == 1) ? ' checked="checked"' : '';
  116. echo '<input name="closed" type="checkbox" value="1"'.$checked.' /> Закрыть комментарии<br />';
  117.  
  118. $checked = ($dataevent['event_top'] == 1) ? ' checked="checked"' : '';
  119. echo '<input name="top" type="checkbox" value="1"'.$checked.' /> Показывать на главной<br />';
  120.  
  121. echo '<br /><input type="submit" value="Изменить" /></form></div><br />';
  122. } else {
  123. show_error('Ошибка! Выбранного события не существует, возможно оно было удалено!');
  124. }
  125.  
  126. echo '<img src="/images/img/back.gif" alt="image" /> <a href="events.php?start='.$start.'&amp;'.SID.'">Вернуться</a><br />';
  127. break;
  128.  
  129. ############################################################################################
  130. ## Редактирование выбранного события ##
  131. ############################################################################################
  132. case 'change':
  133.  
  134. $uid = check($_GET['uid']);
  135. $title = check($_POST['title']);
  136. $msg = check($_POST['msg']);
  137. $closed = (empty($_POST['closed'])) ? 0 : 1;
  138. $top = (empty($_POST['top'])) ? 0 : 1;
  139.  
  140. $dataevent = DB::run() -> queryFetch("SELECT * FROM `events` WHERE `event_id`=? LIMIT 1;", array($id));
  141.  
  142. $validation = new Validation;
  143.  
  144. $validation -> addRule('equal', array($uid, $_SESSION['token']), 'Неверный идентификатор сессии, повторите действие!')
  145. -> addRule('not_empty', $dataevent, 'Выбранного события не существует, возможно оно было удалено!')
  146. -> addRule('string', $title, 'Слишком длинный или короткий заголовок события!', true, 5, 50)
  147. -> addRule('string', $msg, 'Слишком длинный или короткий текст события!', true, 5, 10000);
  148.  
  149. if ($validation->run(1)) {
  150.  
  151. $msg = smiles(no_br($msg));
  152.  
  153. DB::run() -> query("UPDATE `events` SET `event_title`=?, `event_text`=?, `event_closed`=?, `event_top`=? WHERE `event_id`=? LIMIT 1;", array($title, $msg, $closed, $top, $id));
  154.  
  155. // ---------------------------- Загрузка изображения -------------------------------//
  156. if (is_uploaded_file($_FILES['image']['tmp_name'])) {
  157. $handle = upload_image2($_FILES['image'], $config['filesize'], $config['fileupfoto'], $id);
  158. if ($handle) {
  159.  
  160. // Удаление старой картинки
  161. if (!empty($dataevent['event_image'])) {
  162. unlink_image('upload/events/', $dataevent['event_image']);
  163. }
  164.  
  165. $handle -> process(BASEDIR.'upload/events/');
  166.  
  167. if ($handle -> processed) {
  168.  
  169. DB::run() -> query("UPDATE `events` SET `event_image`=? WHERE `event_id`=? LIMIT 1;", array($handle -> file_dst_name, $id));
  170. $handle -> clean();
  171.  
  172. } else {
  173. notice($handle->error, '#ff0000');
  174. }
  175. }
  176. }
  177. // ---------------------------------------------------------------------------------//
  178.  
  179. notice('Событие успешно отредактировано!');
  180. redirect("events.php?act=edit&id=$id&".SID);
  181.  
  182. } else {
  183. show_error($validation->errors);
  184. }
  185.  
  186. echo '<img src="/images/img/back.gif" alt="image" /> <a href="events.php?act=edit&amp;id='.$id.'&amp;start='.$start.'&amp;'.SID.'">Вернуться</a><br />';
  187. echo '<img src="/images/img/reload.gif" alt="image" /> <a href="events.php?start='.$start.'&amp;'.SID.'">К событиям</a><br />';
  188. break;
  189.  
  190. ############################################################################################
  191. ## Пересчет комментариев ##
  192. ############################################################################################
  193. case 'restatement':
  194.  
  195. $uid = check($_GET['uid']);
  196.  
  197. if (is_admin(array(101))) {
  198. if ($uid == $_SESSION['token']) {
  199. restatement('events');
  200.  
  201. notice('Комментарии успешно пересчитаны!');
  202. redirect("events.php?".SID);
  203.  
  204. } else {
  205. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  206. }
  207. } else {
  208. show_error('Ошибка! Пересчитывать сообщения могут только суперадмины!');
  209. }
  210.  
  211. echo '<img src="/images/img/back.gif" alt="image" /> <a href="events.php?'.SID.'">Вернуться</a><br />';
  212. break;
  213.  
  214. ############################################################################################
  215. ## Удаление событий ##
  216. ############################################################################################
  217. case 'del':
  218.  
  219. $uid = check($_GET['uid']);
  220. $del = (isset($_REQUEST['del'])) ? intar($_REQUEST['del']) : 0;
  221.  
  222. if ($uid == $_SESSION['token']) {
  223. if (!empty($del)) {
  224. if (is_writeable(BASEDIR.'upload/events')){
  225.  
  226. $del = implode(',', $del);
  227.  
  228. $querydel = DB::run()->query("SELECT `event_image` FROM `events` WHERE `event_id` IN (".$del.");");
  229. $arr_image = $querydel->fetchAll();
  230.  
  231. if (count($arr_image)>0){
  232. foreach ($arr_image as $delete){
  233. unlink_image('upload/events/', $delete['event_image']);
  234. }
  235. }
  236.  
  237. DB::run() -> query("DELETE FROM `events` WHERE `event_id` IN (".$del.");");
  238. DB::run() -> query("DELETE FROM `commevents` WHERE `commevent_event_id` IN (".$del.");");
  239.  
  240. notice('Выбранные события успешно удалены!');
  241. redirect("events.php?start=$start&".SID);
  242.  
  243. } else {
  244. show_error('Ошибка! Не установлены атрибуты доступа на директорию с изображениями!');
  245. }
  246. } else {
  247. show_error('Ошибка! Отсутствуют выбранные события!');
  248. }
  249. } else {
  250. show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
  251. }
  252.  
  253. echo '<img src="/images/img/back.gif" alt="image" /> <a href="events.php?start='.$start.'&amp;'.SID.'">Вернуться</a><br />';
  254. break;
  255.  
  256. default:
  257. redirect("events.php?".SID);
  258. endswitch;
  259.  
  260. echo '<img src="/images/img/panel.gif" alt="image" /> <a href="index.php?'.SID.'">В админку</a><br />';
  261.  
  262. } else {
  263. redirect(BASEDIR.'index.php?'.SID);
  264. }
  265.  
  266. include_once ('../themes/footer.php');
  267. ?>