Просмотр файла modules/forum/core/search.php

Размер файла: 3.3Kb
  1. <?
  2. if(!defined('SHCMS_ENGINE')) {
  3. die( "Неправильное действие" );
  4. }
  5. switch($act):
  6. default:
  7. echo '<div class="mainname">'.Lang::__('Искать тему').'</div>';
  8. echo '<div class="mainpost">';
  9. $form = new form('?do=search&act=search');
  10. $form->input2(false,'search','text',false,'placeholder="Тема..."',false,false);
  11. $form->submit('Искать','submit');
  12. $form->display();
  13. echo '</div>';
  14. //Переадресация на пред. страницу
  15. echo engine::home(array('Назад','index.php'));
  16. break;
  17. case'search':
  18. function search($query) {
  19. global $db;
  20. $query = trim($query);
  21. $query = $db->safesql($query);
  22. $query = htmlspecialchars($query);
  23. if (!empty($query)) {
  24. if (strlen($query) < 3) {
  25. $text = '<p>Слишком короткий поисковый запрос.</p>';
  26. } else if (strlen($query) > 128) {
  27. $text = '<p>Слишком длинный поисковый запрос.</p>';
  28. } else {
  29. $q = "SELECT `id`,`name` FROM `forum_topics` WHERE `name` LIKE '%$query%'";
  30. $result = $db->query($q);
  31.  
  32. if ($db->num_rows($result) > 0) {
  33. $row = $db->get_array($result);
  34. $num = $db->num_rows($result);
  35.  
  36. $text = '<div class="mainname">По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</div>';
  37. $text .= '<div class="mainpost">';
  38.  
  39. do {
  40. // Делаем запрос, получающий ссылки на статьи
  41. $q1 = "SELECT * FROM `forum_topics` WHERE `id` = '$row[id]'";
  42. $result1 = $db->query($q1);
  43.  
  44. if ($db->num_rows() > 0) {
  45. $row1 = $db->get_array($result1);
  46. }
  47.  
  48. $text .= '<div class="posts_gl">';
  49. $text .= '<table cellspacing="0" callpadding="0" width="100%"><tr>';
  50. $text .= '<td class="icons"><img src="/engine/template/icons/fol_txt.png"></td>';
  51. $text .= '<td class="name" colspan="10"><b>Тема: <a href="post.php?id='.$row1['id'].'">'.engine::ucfirst(engine::search_text($query,$row1['name'])).'</a></b></td>';
  52. $text .= '</tr><tr><td class="content" colspan="10">'.engine::input_text($row1['text']).'</td></tr></table>';
  53. $text .= '</div>';
  54. } while ($row = $db->get_array($result));
  55. } else {
  56. $text = engine::error('По вашему запросу ничего не найдено.');
  57. }
  58. }
  59. } else {
  60. $text = engine::error('Задан пустой поисковый запрос.');
  61. }
  62. $text .= engine::home(array('Назад','?do=search'));
  63. $text .= '</div>';
  64. return $text;
  65. }
  66. if (!empty($_POST['search'])) {
  67. $search_result = search ($_POST['search']);
  68. echo $search_result;
  69. }else {
  70. echo engine::error('Введите название файла в поиске');
  71. }
  72. break;
  73. endswitch;
  74. ?>