Просмотр файла lib/includes/search/view.php

Размер файла: 2.86Kb
  1. <?php
  2.  
  3. $wheres = array('n' => 'name', 'a' => 'announce', 't' => 'text', 'm' => 'tags');
  4. $where = !empty($_REQUEST['where']) && array_key_exists($_REQUEST['where'], $wheres) ? $_REQUEST['where'] : 'n';
  5. $query = !empty($_GET['query']) ? urldecode($_GET['query']) : (!empty($_POST['query']) ? $_POST['query'] : '');
  6. $query = trim($query);
  7. echo '<div class="fmenu"><strong>' . 'Библиотека' . ' | Поиск</strong></div>'
  8. . '<div class="msg"><strong>Введите запрос:</strong> (4 - 64)<br />'
  9. . '<form action="?act=search&amp;mod=view&amp;search" method="post">'
  10. . '<input type="text" name="query" value="' . htmlentities($query, ENT_QUOTES, 'UTF-8') . '" /><br />'
  11. . 'Где искать:<br />'
  12. . '<input type="radio" name="where" value="n"' . ($where == 'n' ? ' checked="checked"' : '') . ' />В заголовках<br />'
  13. . '<input type="radio" name="where" value="a"' . ($where == 'a' ? ' checked="checked"' : '') . ' />В анонсах<br />'
  14. . '<input type="radio" name="where" value="t"' . ($where == 't' ? ' checked="checked"' : '') . ' />В тексте<br />'
  15. . '<input type="radio" name="where" value="m"' . ($where == 'm' ? ' checked="checked"' : '') . ' />В метках<br />'
  16. . '<input type="submit" name="submit" value="Искать" /></form></div>';
  17. if (!empty($query)) {
  18. echo '<div class="msg"><strong>Результат поиска:</strong></div>';
  19. }
  20. if ((!empty($query)) && (mb_strlen($query) < 4 || mb_strlen($query) > 64)) {
  21. echo '<div class="err">Длина запроса должна содержать от 4-х до 64-х символов</div>';
  22. } else {
  23. Core::get('page.class', 'classes');
  24. $word = my_esc($query);
  25. $word = mb_strlen($word) < 4 ? ' ' . $word . ' ' : $word;
  26. $field = $wheres[$where];
  27. $total = $sql->query(
  28. "SELECT COUNT(*) FROM `mod_lib` " .
  29. "WHERE MATCH `" . $field . "` AGAINST ('" . $word . "' IN BOOLEAN MODE) > 0 " .
  30. "AND `type` = 'arc' AND `mod` = '0'")->result();
  31. $page = new page($total, $set['p_str']);
  32. if ($total) {
  33. $qArc = $sql->query(
  34. "SELECT `id`, `name`, `announce`, `tags`, `author_id`, `author_name`, `time`, `comm_count`, `views`, `uni_views`, "
  35. . "(`rate_plus` - `rate_minus`) as `rate_all`, MATCH `" . $field . "` AGAINST ('" . $word . "') as `rel` "
  36. . "FROM `mod_lib` WHERE MATCH `" . $field . "` AGAINST ('" . $word . "' IN BOOLEAN MODE) > 0 AND `type` = 'arc' AND `mod` = '0' "
  37. . "ORDER BY `rel` LIMIT " . $page->limit());
  38. $i = 0;
  39. while ($arc = $sql->fetch()) {
  40. echo '<div class="' . ($i % 2 ? 'p_m' : 'p_t') . '">' . display_article($arc) . '</div>';
  41. $i++;
  42. }
  43. $page->display('?act=search&amp;mod=view&amp;where=' . $where . '&amp;query=' . urlencode($query) . '&amp;search&amp;');
  44. } elseif(isset($_GET['search'])) {
  45. echo '<div class="post">Список пуст</div>';
  46. }
  47. }
  48.  
  49. echo '<p><a href="index.php">В библиотеку</a></p>';