На главную
RiLax Manual
© С. Тарасов
Вид результатов поиска
Данный скрипт используют шаблоны для изменения дизайна
вывода результатов поиска. Шаблоны размещены в директории "templates".
Это обычные HTML файлы, вы можете открыть их в любом броузере и посмотреть,
как будет выглядеть Ваша страница, и при желании изменить дизайн по своему
усмотрению.
Как именно будет подсвечено слово задается параметрами
mark_start и mark_end.
Использование шаблонов
Шаблон состоит из нескольких секций: "header" и "footer"
будут выводиться всегда в начале и конце страницы; "results_header", "results"
и "results_footer" выводятся при успешном поиске; "no_results" выводится, если
поиск дал нулевой результат; "empty_query" выводится при пустом запросе.
Каждая секция шаблона разделена метками вроде этой:
<!-- RiSearch::header::start -->
Вы можете редактировать все, что находится между двумя разделителями.
В шаблоне используется несколько предопределенных параметров, на место
которых будет подставлен результат выполнения скрипта. Вот полный список
параметров:
%query%
- запрос.
%search_time%
- время выполнения скрипта.
%query_statistics%
- статистика найденных слов (т.е. строка вида - "слово1-N1 слово2-N2").
%stpos%
- порядковый номер, с которого начинаются результаты на данной странице (начинается с 0).
%enc_url%
- кодированный URL.
%rescount%
- общее число найденных файлов.
%next_results%
- линки на следующие страницы с результатами поиска (выдаются блоками по 20 страниц).
%prev_page%
- линк на предыдущую страницу с результатами поиска (или пустая строка, если текущая страница первая).
%next_page%
- линк на следующую страницу с результатами поиска (или пустая строка, если текущая страница последняя).
%prev_pages%
- линк на предыдущий блок страниц с результатами поиска (или пустая строка, если текущий блок первый).
%next_pages%
- линк на следующий блок страниц с результатами поиска (или пустая строка, если текущий блок последний).
%res_num%
- число результатов на странице.
%ndquery%
- недекодированная строка запроса (может применяться для ручного создания ссылок).
%sorting%
- тип сортировки (принимает значения "N", "1", "2" и т.д.).
%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). Учтите, что этот вариант может замедлить выдачу ответа пользователю.
|