ENG/RUS   Главная :: RiSearch :: RiSearch Pro :: RiSearch PHP :: RiLax :: RuMor :: Forum

Введение :: Документация :: Купить :: License

На главную

RiLax Manual

© С. Тарасов

Вид результатов поиска

      Данный скрипт используют шаблоны для изменения дизайна вывода результатов поиска. Шаблоны размещены в директории "templates". Это обычные HTML файлы, вы можете открыть их в любом броузере и посмотреть, как будет выглядеть Ваша страница, и при желании изменить дизайн по своему усмотрению.

      Как именно будет подсвечено слово задается параметрами mark_start и mark_end.

Использование шаблонов

      Шаблон состоит из нескольких секций: "header" и "footer" будут выводиться всегда в начале и конце страницы; "results_header", "results" и "results_footer" выводятся при успешном поиске; "no_results" выводится, если поиск дал нулевой результат; "empty_query" выводится при пустом запросе.

      Каждая секция шаблона разделена метками вроде этой:

 <!-- RiSearch::header::start --> 
Вы можете редактировать все, что находится между двумя разделителями.

      В шаблоне используется несколько предопределенных параметров, на место которых будет подставлен результат выполнения скрипта. Вот полный список параметров:

  1.  %query%  - запрос.

  2.  %search_time%  - время выполнения скрипта.

  3.  %query_statistics%  - статистика найденных слов (т.е. строка вида - "слово1-N1 слово2-N2").

  4.  %stpos%  - порядковый номер, с которого начинаются результаты на данной странице (начинается с 0).

  5.  %enc_url%  - кодированный URL.

  6.  %rescount%  - общее число найденных файлов.

  7.  %next_results%  - линки на следующие страницы с результатами поиска (выдаются блоками по 20 страниц).

  8.  %prev_page%  - линк на предыдущую страницу с результатами поиска (или пустая строка, если текущая страница первая).

  9.  %next_page%  - линк на следующую страницу с результатами поиска (или пустая строка, если текущая страница последняя).

  10.  %prev_pages%  - линк на предыдущий блок страниц с результатами поиска (или пустая строка, если текущий блок первый).

  11.  %next_pages%  - линк на следующий блок страниц с результатами поиска (или пустая строка, если текущий блок последний).

  12.  %res_num%  - число результатов на странице.

  13.  %ndquery%  - недекодированная строка запроса (может применяться для ручного создания ссылок).

  14.  %sorting%  - тип сортировки (принимает значения "N", "1", "2" и т.д.).

  15.  %stype%  - режим поиска (принимает значения "AND" или "OR").

Использование нескольких шаблонов

      Скрипт может использовать несколько шаблонов для печати результатов. Каждый дополнительный шаблон должен быть определен в конфигурационном файле следующим образом:  template_1 => "templates/template_1.htm",   template_2 => "templates/template_2.htm", 

      Используйте параметр "t=N" (где N номер шаблона) в запросе, чтобы вывести результаты поиска в нестандартном шаблоне.

Дополнительные возможности шаблонов

      Иногда выводимая информация должна зависеть от результатов поиска. Для этих целей в шаблоне предусмотрены условные операторы.

<% IF %condition% %> Print something <% ENDIF %>

в котором действия выполняются в том случае, если условие (%condition%) истинно, и

<% IF %condition% %> Print 1 <% ELSE %> Print 2 <% ENDIF %>

в котором при истинном условии выполняются действия "Print 1", и действия "Print 2" в противном случае.

      Условия (%condition%) выглядят таким образом:


%sorting% == "R"     - условие истинно, если параметр %sorting% равен "R"
%zones_names% == "News"     - условие истинно, если параметр %zones_names% равен "News"
%prev_page% != ""     - условие истинно, если параметр %prev_page% НЕ равен пустой строке

      Использовать данные операторы можно примерно таким образом:

<% IF %sorting% == "R" %>(Score: %score%)<% ENDIF %>

- рейтинг документа печатается только в том случае, когда результаты поиска сортируются по релевантности.

      В дополнение к вышеуказанным операторам существует оператор, который позволяет производить простейшие арифметические действия.

<% DO %> %stpos% + %res_num% <% ENDDO %>

      Например, следующий код напечатает диапазон номеров ссылок на текущей странице:

<% DO %> %stpos% + 1 <% ENDDO %>
..
<% IF %next_page% == "" %> %rescount% <% ELSE %><% DO %> %stpos% + %res_num% <% ENDDO %><% ENDIF %>

      Оператор "DO" может быть вложен в оператор "IF", другие вложения недопустимы. Примеры использования операторов можно найти в файле "demo_template.htm".

Sever Side Includes

      Sever Side Includes (SSI) как правило не работают совместно со скриптами. Это связано с ограничениями, накладываемыми вебсервером и исправить это нельзя (точнее, эта проблема была решена во второй версии вебсервера Апач, но скорее всего вам пока не удастся найти хостинг с этой версией). Поэтому приходится искать обходные пути. Сушествует несколько возможных решений данной проблемы:

  • вручную править шаблон каждый раз, когда на сайте меняется оформление;
  • использовать готовые перловые модули, но вам скорее всего придется ставить и настраивать их самостоятельно;
  • можно вызывать сам поисковый скрипт из SHTML страницы;
  • RiSearch Pro позводляет использовать в шаблонах простейшие SSI директивы (только <!--#include virtual='file'--> поддерживаются в данный момент).
  • также возможно в конфиге указать полный URL для шаблона (search_template => "http://www.server.com/templates/template.htm"), скрипт пошлет отдельный запрос к серверу, сервер обработает SSI директивы в шаблоне и вернет его скрипту, затем скрипт заполнит шаблон и вернет его пользователю (шаблон нужно будет перенести в доступную область сайта, потому что сервер не отдаст документ, лежащий в cgi-bin). Учтите, что этот вариант может замедлить выдачу ответа пользователю.


http://risearch.org С.Тарасов, © 2000-2003