Просмотр файла blog/search.php

Размер файла: 10.23Kb
  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/' . $config['themes'] . '/index.php');
  16.  
  17. if (isset($_GET['act'])) {
  18. $act = check($_GET['act']);
  19. } else {
  20. $act = 'index';
  21. }
  22. if (isset($_GET['start'])) {
  23. $start = abs(intval($_GET['start']));
  24. } else {
  25. $start = 0;
  26. }
  27.  
  28. show_title('site.png', 'Поиск в блогах');
  29.  
  30. if (is_user()) {
  31. switch ($act):
  32. # ###########################################################################################
  33. # # Главная поиска ##
  34. # ###########################################################################################
  35. case "index":
  36.  
  37. $config['newtitle'] = 'Поиск в блогах';
  38.  
  39. echo '<div class="form"><form action="search.php?act=search&amp;' . SID . '" method="post">';
  40. echo 'Запрос:<br />';
  41. echo '<input type="text" name="find" /><br />';
  42.  
  43. echo 'Искать:<br />';
  44. echo '<input name="where" type="radio" value="0" checked="checked" /> В заголовке<br />';
  45. echo '<input name="where" type="radio" value="1" /> В тексте<br /><br />';
  46.  
  47. echo 'Тип запроса:<br />';
  48. echo '<input name="type" type="radio" value="0" checked="checked" /> И<br />';
  49. echo '<input name="type" type="radio" value="1" /> Или<br />';
  50. echo '<input name="type" type="radio" value="2" /> Полный<br /><br />';
  51.  
  52. echo '<input type="submit" value="Поиск" /></form></div><br />';
  53.  
  54. break;
  55. # ###########################################################################################
  56. # # Поиск ##
  57. # ###########################################################################################
  58. case "search":
  59.  
  60. if (isset($_POST['find'])) {
  61. $_SESSION['find'] = check(trim($_POST['find']));
  62. $_SESSION['findresult'] = '';
  63. }
  64. if (isset($_POST['type'])) {
  65. $type = abs(intval($_POST['type']));
  66. } else {
  67. $type = abs(intval($_GET['type']));
  68. }
  69. if (isset($_POST['where'])) {
  70. $where = abs(intval($_POST['where']));
  71. } else {
  72. $where = abs(intval($_GET['where']));
  73. }
  74.  
  75. if (utf_strlen($_SESSION['find']) < 50) {
  76. $findme = rus_utf_tolower($_SESSION['find']);
  77. $findmewords = explode(" ", $findme);
  78.  
  79. $find = array();
  80. foreach ($findmewords as $valfind) {
  81. if (utf_strlen($valfind) >= 3) {
  82. $find[] = $valfind;
  83. }
  84. }
  85. array_splice($find, 3);
  86.  
  87. if (count($find) > 0) {
  88. $config['newtitle'] = $_SESSION['find'] . ' - Результаты поиска';
  89.  
  90. $types = (empty($type)) ? 'AND' : 'OR';
  91. $wheres = (empty($where)) ? 'title' : 'text';
  92. // ----------------------------- Поиск в названии -------------------------------//
  93. if ($wheres == 'title') {
  94. echo 'Поиск запроса <b>&quot;' . $_SESSION['find'] . '&quot;</b> в заголовке<br />';
  95.  
  96. if ($type == 2) {
  97. $find[0] = $findme;
  98. }
  99. $search1 = (isset($find[1]) && $type != 2) ? $types . " `blogs_title` LIKE '%" . $find[1] . "%'" : '';
  100. $search2 = (isset($find[2]) && $type != 2) ? $types . " `blogs_title` LIKE '%" . $find[2] . "%'" : '';
  101.  
  102. if (empty($_SESSION['findresult'])) {
  103. $querysearch = DB :: $dbh -> query("SELECT `blogs_id` FROM `blogs` WHERE `blogs_title` LIKE '%" . $find[0] . "%' " . $search1 . " " . $search2 . " LIMIT 500;");
  104. $result = $querysearch -> fetchAll(PDO :: FETCH_COLUMN);
  105.  
  106. $_SESSION['findresult'] = $result;
  107. }
  108.  
  109. $total = count($_SESSION['findresult']);
  110.  
  111. if ($total > 0) {
  112. if ($start >= $total) {
  113. $start = 0;
  114. }
  115.  
  116. echo 'Найдено совпадений: <b>' . $total . '</b><br /><br />';
  117.  
  118. $result = implode(',', $_SESSION['findresult']);
  119.  
  120. $queryblog = DB :: $dbh -> query("SELECT `blogs`.*, `cats_id`, `cats_name` FROM `blogs` LEFT JOIN `catsblog` ON `blogs`.`blogs_cats_id`=`catsblog`.`cats_id` WHERE `blogs_id` IN (" . $result . ") ORDER BY `blogs_time` DESC LIMIT " . $start . ", " . $config['blogpost'] . ";");
  121.  
  122. while ($data = $queryblog -> fetch()) {
  123. if ($data['blogs_rating'] > 0) {
  124. $data['blogs_rating'] = '<span style="color:#00aa00">+' . $data['blogs_rating'] . '</span>';
  125. }
  126. if ($data['blogs_rating'] < 0) {
  127. $data['blogs_rating'] = '<span style="color:#ff0000">' . $data['blogs_rating'] . '</span>';
  128. }
  129.  
  130. echo '<div class="b"><img src="../images/img/edit.gif" alt="image" /> ';
  131. echo '<b><a href="blog.php?act=view&amp;id=' . $data['blogs_id'] . '&amp;' . SID . '">' . $data['blogs_title'] . '</a></b> (' . $data['blogs_rating'] . ')</div>';
  132.  
  133. echo '<div>Категория: <a href="blog.php?cid=' . $data['cats_id'] . '&amp;' . SID . '">' . $data['cats_name'] . '</a><br />';
  134. echo 'Просмотров: ' . $data['blogs_read'] . '<br />';
  135. echo 'Автор: <a href="../pages/anketa.php?uz=' . $data['blogs_user'] . '&amp;' . SID . '">' . nickname($data['blogs_user']) . '</a> (' . date_fixed($data['blogs_time']) . ')</div>';
  136. }
  137.  
  138. page_strnavigation('search.php?act=search&amp;type=' . $type . '&amp;where=' . $where . '&amp;', $config['blogpost'], $start, $total);
  139. } else {
  140. show_error('По вашему запросу ничего не найдено!');
  141. }
  142. }
  143. // --------------------------- Поиск в текте -------------------------------//
  144. if ($wheres == 'text') {
  145. echo 'Поиск запроса <b>&quot;' . $_SESSION['find'] . '&quot;</b> в тексте<br />';
  146.  
  147. if ($type == 2) {
  148. $find[0] = $findme;
  149. }
  150. $search1 = (isset($find[1]) && $type != 2) ? $types . " `blogs_text` LIKE '%" . $find[1] . "%'" : '';
  151. $search2 = (isset($find[2]) && $type != 2) ? $types . " `blogs_text` LIKE '%" . $find[2] . "%'" : '';
  152.  
  153. if (empty($_SESSION['findresult'])) {
  154. $querysearch = DB :: $dbh -> query("SELECT `blogs_id` FROM `blogs` WHERE `blogs_text` LIKE '%" . $find[0] . "%' " . $search1 . " " . $search2 . " LIMIT 500;");
  155. $result = $querysearch -> fetchAll(PDO :: FETCH_COLUMN);
  156.  
  157. $_SESSION['findresult'] = $result;
  158. }
  159.  
  160. $total = count($_SESSION['findresult']);
  161.  
  162. if ($total > 0) {
  163. if ($start >= $total) {
  164. $start = 0;
  165. }
  166.  
  167. echo 'Найдено совпадений: <b>' . $total . '</b><br /><br />';
  168.  
  169. $result = implode(',', $_SESSION['findresult']);
  170.  
  171. $queryblog = DB :: $dbh -> query("SELECT `blogs`.*, `cats_id`, `cats_name` FROM `blogs` LEFT JOIN `catsblog` ON `blogs`.`blogs_cats_id`=`catsblog`.`cats_id` WHERE `blogs_id` IN (" . $result . ") ORDER BY `blogs_time` DESC LIMIT " . $start . ", " . $config['blogpost'] . ";");
  172.  
  173. while ($data = $queryblog -> fetch()) {
  174. if ($data['blogs_rating'] > 0) {
  175. $data['blogs_rating'] = '<span style="color:#00aa00">+' . $data['blogs_rating'] . '</span>';
  176. }
  177. if ($data['blogs_rating'] < 0) {
  178. $data['blogs_rating'] = '<span style="color:#ff0000">' . $data['blogs_rating'] . '</span>';
  179. }
  180.  
  181. echo '<div class="b"><img src="../images/img/edit.gif" alt="image" /> ';
  182. echo '<b><a href="blog.php?act=view&amp;id=' . $data['blogs_id'] . '&amp;' . SID . '">' . $data['blogs_title'] . '</a></b> (' . $data['blogs_rating'] . ')</div>';
  183.  
  184. if (utf_strlen($data['blogs_text']) > 200) {
  185. $data['blogs_text'] = strip_tags(bb_code($data['blogs_text']), '<br>');
  186. $data['blogs_text'] = utf_substr($data['blogs_text'], 0, 200) . '...';
  187. }
  188.  
  189. echo '<div>' . $data['blogs_text'] . '<br />';
  190.  
  191. echo 'Категория: <a href="blog.php?cid=' . $data['cats_id'] . '&amp;' . SID . '">' . $data['cats_name'] . '</a><br />';
  192. echo 'Автор: <a href="../pages/anketa.php?uz=' . $data['blogs_user'] . '&amp;' . SID . '">' . nickname($data['blogs_user']) . '</a> (' . date_fixed($data['blogs_time']) . ')</div>';
  193. }
  194.  
  195. page_strnavigation('search.php?act=search&amp;type=' . $type . '&amp;where=' . $where . '&amp;', $config['blogpost'], $start, $total);
  196. } else {
  197. show_error('По вашему запросу ничего не найдено!');
  198. }
  199. }
  200. } else {
  201. show_error('Ошибка! Необходимо не менее 3-х символов в слове!');
  202. }
  203. } else {
  204. show_error('Ошибка! Запрос должен содержать не более 50 символов!');
  205. }
  206.  
  207. echo '<img src="../images/img/back.gif" alt="image" /> <a href="search.php?' . SID . '">Вернуться</a><br />';
  208. break;
  209.  
  210. default:
  211. header("location: search.php?" . SID);
  212. exit;
  213. endswitch;
  214. } else {
  215. show_login('Вы не авторизованы, чтобы использовать поиск, необходимо');
  216. }
  217.  
  218. echo '<img src="../images/img/reload.gif" alt="image" /> <a href="index.php?' . SID . '">К блогам</a><br />';
  219. echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a>';
  220.  
  221. include_once ('../themes/' . $config['themes'] . '/foot.php');
  222.  
  223. ?>