Просмотр файла pages/guestbook.php

Размер файла: 6.31Kb
  1. <?php
  2. include '../engine/includes/start.php';
  3. $set['title']='Гостевая книга'; // заголовок страницы
  4. include H.'engine/includes/head.php';
  5. Core::get(array('page.class', 'text.class', 'cache.class'), 'classes');
  6. if (!$admin)$act = null;
  7.  
  8. switch($act)
  9. {
  10. case 'clean':
  11.  
  12. if (isset($_POST['write'], $_POST['write2']))
  13. {
  14. $timeclear1 = 0;
  15. if ($_POST['write2']=='sut')
  16. $timeclear1 = time() - intval($_POST['write']) * 60 * 60 * 24;
  17. elseif ($_POST['write2']=='mes')
  18. $timeclear1 = time() - intval($_POST['write']) * 60 * 60 * 24 * 30;
  19. $deletes = $sql->query('DELETE FROM `guest` WHERE `time` > '.$timeclear1)->num_rows();
  20. $sql->query('OPTIMIZE TABLE `guest`');
  21. Core::msg_show( ' Удалено постов: '.$deletes);
  22. Cache::multi_delete('guestbook', tmpDir);
  23. }
  24. else
  25. ?>
  26. <form method = "post" class='post' action="?act=clean">
  27. Будут удалены посты, написаные ... тому назад<br />
  28. <input name = "write" value="12" type="text" size='3' />
  29. <select name = "write2">
  30. <option value="">-------</option>
  31. <option value="mes">Месяцев</option>
  32. <option value="sut">Суток</option>
  33. </select><br />
  34. <input value="Очистить" type="submit" /><br />
  35. <a href="?">Отмена</a><br />
  36. </form>
  37. <?php
  38. include H.'engine/includes/foot.php';
  39. break;
  40.  
  41.  
  42. case 'del':
  43. if ($sql->query("SELECT COUNT(*) FROM `guest` WHERE `id` = '".$id."'")->result() == 1)
  44. {
  45. $sql->query("DELETE FROM `guest` WHERE `id` = '$id' limit 1");
  46. Core::msg_show('Сообщение удалено');
  47. Cache::multi_delete('guestbook', tmpDir);
  48. }
  49. break;
  50.  
  51. case 'uninstall':
  52. if ($creator)
  53. {
  54. if (isset($_GET['yes']))
  55. {
  56. $sql->multi("DROP TABLE `guest`;DELETE FROM `modules` where `name` = 'gBook';DELETE FROM `module_services` where `belongs` = 'gBook';");
  57. unlink(H . 'engine/services/guestbook.php');
  58. unlink(H . 'pages/guestbook.php');
  59. Cache::multi_delete('guestbook', tmpDir);
  60. echo 'Мини-чат удален';
  61. }
  62. else
  63. echo 'Вы действительно хотите удалить модуль "Мини-чат"?<br /><a href="?act=uninstall&amp;yes">[ Да ]</a> | <a href="?">[ Нет ]</a>';
  64. include H.'engine/includes/foot.php';
  65. }
  66. break;
  67. }
  68.  
  69. if (isset($_POST['msg']) && $user_id)
  70. {
  71. $msg = my_esc($_POST['msg']);
  72. $mat = text::antimat($msg, $user);
  73. $length = mb_Strlen($msg);
  74.  
  75. if ($mat)
  76. $err = 'В тексте сообщения обнаружен мат: '.$mat;
  77.  
  78. elseif ($length > 1024)
  79. $err = 'Сообщение слишком длинное';
  80. elseif ($length < 2)
  81. $err = 'Короткое сообщение';
  82.  
  83. elseif ($sql->query("SELECT COUNT(*) FROM `guest` WHERE `id_user` = '".$user['id']."' AND `msg` = '".$msg."' LIMIT 1")->result())
  84. $err = 'Ваше сообщение повторяет предыдущее';
  85.  
  86. elseif (!isset($err))
  87. {
  88. $sql->multi("INSERT INTO `guest` (`id_user`, `time`, `msg`) values('".$user['id']."', '".time()."', '".$msg."');UPDATE `user` SET `balls` = `balls` + 1 WHERE `id` = '".$user['id']."' LIMIT 1;");
  89. $sql->free(true);
  90. Core::msg_show('Сообщение успешно добавлено<br /><a href="?">Вернутся</a>', 'msg');
  91. Cache::multi_delete('guestbook', tmpDir);
  92. include H.'engine/includes/foot.php';
  93. }
  94. unset($msg, $mat, $length);
  95. }
  96.  
  97. if (isset($err))
  98. echo Core::msg_show($err);
  99.  
  100. if ($user_id)
  101. {
  102. $area = null;
  103. if ($act == 'reply')
  104. {
  105. $for = Core::get_user($id);
  106. $area = '[b]' . $for['nick'] . '[/b], ';
  107. }
  108. ?>
  109. <div class="menu_razd"><a name="message">Быстрый ответ</a> | <a href="?page=<?=$cur_page?>#advance_message">Расшир. ответ</a></div>
  110. <form method = "post">
  111. <textarea name="msg"><?=$area?></textarea><br />
  112. <input value="Отправить" type="submit"/>
  113. </form>
  114. <?php
  115. }
  116. $cache = new cache(H.'engine/files/tmp/guestbook[page='.(isset($_GET['page']) ? intval($_GET['page']) : 1).';moder='.($moder ? 1 : 0).';user='.($user_id ? 1 : 0).'].swc');
  117.  
  118. if (!$cache->life())
  119. {
  120.  
  121. ob_start();
  122.  
  123. $k_post = $sql->query("SELECT COUNT(*) FROM `guest`")->result();
  124. $page = new page($k_post, $set['p_str']);
  125. $i = 1;
  126.  
  127. if (!$k_post)
  128. Core::msg_show('Нет сообщений', 'post');
  129.  
  130. $sql->query("SELECT `guest`.`msg`, `guest`.`time`, `guest`.`id` as `post_id`, `user`.`date_last`,`user`.`nick`, `user`.`id`, `user`.`pol`, `user`.`group_access` FROM `guest` LEFT JOIN `user` ON `guest`.`id_user` = `user`.`id` ORDER BY `guest`.`id` DESC LIMIT ".$page->limit());
  131. while ($post = $sql->fetch())
  132. {
  133. echo '<div class="'.($i++ % 2 ? 'p_m' : 'p_t').'">'.Core::user_show($post, array('post' => text::output($post['msg']), 'status' => $post['time'], 'is_time' => true), 'new');
  134.  
  135. if ($user_id)
  136. echo '<br /><a href="?act=reply&amp;id='.$post['id'].'&amp;sid='.mt_rand(99,999).'#message">Ответить</a>';
  137.  
  138. if ($moder)
  139. echo '<a style="float:right" href="?id='.$post['post_id'].'&amp;act=del">Удалить</a>';
  140. echo '</div>';
  141. }
  142. $page->display('?');
  143. $cache->write();
  144. }
  145. echo $cache->read();
  146. echo '<form name="form" method = "post">';
  147. if ($user_id)
  148. {
  149. $area = null;
  150. if ($act == 'reply')
  151. {
  152. $for = Core::get_user($id);
  153. $area = '[b]' . $for['nick'] . '[/b], ';
  154. }
  155. $js_form = 'form';
  156. $js_elem = 'msg';
  157. include incDir . 'JsToolBar.php';
  158. ?>
  159. <a name="advance_message"></a>
  160. Сообщение:<br />
  161. <textarea name="msg"><?=$area?></textarea><br />
  162. <input value="Отправить" type="submit"/>
  163. </form>
  164. <?php
  165. }
  166.  
  167. if ($admin)
  168. {
  169. ?>
  170. <div class="fmenu">
  171. <a href="?act=clean">Очистить гостевую</a>
  172. </div>
  173. <?php
  174. }
  175.  
  176. unset($cache, $page, $post, $data, $i);
  177. echo '<a href="/"><div class="menu_razd">Главная</div></a>';
  178.  
  179. include H.'engine/includes/foot.php';