Скриптовый поиск

Руководство пользователя

Оглавление

Оглавление. 2

О программе. 3

1 Настройка. 3

1.1 Правила HTML-разметки для загрузки поискового фильтра. 3

1.1.1 Подключение к html-странице скриптов и каскадных таблиц стилей. 3

1.1.2 Задание области поискового фильтра на html-странице. 4

1.1.2.1 Адрес экрана подбора туров при использовании фреймов. 4

2 Подготовка данных. 4

2.1 Разметка элементов поискового фильтра. 4

2.1.1 Общие положения. 4

2.1.2 Использование выпадающего списка. 5

2.1.3 Использование списка чек-боксов. 5

2.1.4 Использование календаря. 5

2.2 Разметка элементов результата поиска. 6

3 Работа в системе. 7

О программе

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

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

Также скриптовый поиск может понадобиться, в случае, если сайт находится на хостинге, отличном от хостинга приложения iis.

Он не требует наличия iis на сервере. Его можно встроить в php-сайт или статичную страницу html.

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

2  Настройка

Настройки приложения

Программный продукт представляет собой набор скриптовых файлов, написанных на языке JavaScript, а, следовательно, не предъявляет требований к платформе web-сервера, на котором будет опубликован. Получение данных для формирования фильтра производится через Web-сервис «Сервис по загрузке поискового фильтра» (FilterBinding).

2.1  Правила HTML-разметки для загрузки поискового фильтра

2.1.1  Подключение к html-странице скриптов и каскадных таблиц стилей

Для функционирования программного продукта необходимо в заголовке html-страницы (обозначаемом тегами <head></head>) подключить скрипты и каскадные таблицы стилей, входящих в поставку продукта. Для этого необходимо добавить следующие строки:

<script type="text/javascript" src="js/jquery. js"></script>

<script type="text/javascript" src="js/json2.js"></script>

<script type="text/javascript" src="js/ui. core. js"></script>

<script type="text/javascript" src="js/ui. datepicker. js"></script>

<script type="text/javascript" src="js/ui. datepicker-ru. js"></script>

<link type="text/css" href="css/ui. all. css" rel="stylesheet" />

<script type='text/javascript' src='js/jquery. loadmask. min. js'></script>

<link type="text/css" href="css/jquery. loadmask. css" rel="stylesheet" />

<script type='text/javascript' src='js/filter. binding. js'></script>

<script type="text/javascript" src="js/search. engine. js"></script>

При этом необходимо учитывать относительность путей, в случае если файлы продукта находятся не на том же уровне иерархии файлов, что и размечаемая web-страница.

Если какие-либо из файлов данного программного продукта уже были подключены на странице ранее, добавлять ссылки на них повторно не следует, но необходимо убедиться, что версии этих файлов не ниже поставляемых с продуктом.

2.1.2  Задание области поискового фильтра на html-странице

Область, в которой будут расположены элементы поискового фильтра, должна быть выделена элементом div с идентификатором searchfilter, а также атрибутами navigateUrl и filterBindingServiceUrl.

Атрибут navigateUrl задает адрес экрана подбора туров, в который будут переданы результаты формирования поискового фильтра.

Атрибут filterBindingServiceUrl задает адрес web-сервиса загрузки поискового фильтра, через который будет происходить загрузка данных.

Пример разметки области поискового фильтра:

<div id="searchfilter"

navigateUrl="http://book. *****/Extra/QuotedDynamic. aspx"

filterBindingServiceUrl="http://online. *****/WSJsSearch/FilterBindingScriptService. asmx" style="width:380px;">

<!--Разметка поискового фильтра-->

</div>

2.1.2.1  Адрес экрана подбора туров при использовании фреймов

При использовании экрана «Скриптовый поиск» во фреймах, атрибут navigateUrl будет принимать другое значение.

Пример разметки области поискового фильтра:

<div id="searchfilter"

navigateUrl="http://ip-адрес сервера/JSSearch/Results. htm"

filterBindingServiceUrl=" http://online. *****/WSJsSearch /FilterBindingScriptService. asmx" style="width:380px;">

<!--Разметка поискового фильтра-->

</div>

НЕ нашли? Не то? Что вы ищете?

Адрес экрана подбора туров, в который будут переданы результаты формирования поискового фильтра, в этом случае будет задаваться на странице Results. htm:

source = ‘http://book. *****/extra/quoteddynamic. aspx'

3  Подготовка данных

3.1  Разметка элементов поискового фильтра

3.1.1  Общие положения

Элемент поискового фильтра может быть представлен выпадающим списком (элемент <select></select>), списком чек-боксов (элемент <div></div>), полем текстового ввода с зависимым от него календарем (элемент <input></input>).

Элемент поискового фильтра должен содержать идентификатор, определенный в схеме сервиса загрузки фильтра, и следующие атрибуты:

Название

атрибута

Описание

Примеры использования

autoPostBack

Необходимость отправлять запрос на загрузку поискового фильтра к web-сервису, если значение данного элемента было изменено.

autoPostBack="true"

autoPostBack="false"

bindingtype

Определение типа критерия поискового фильтра, подгружаемого в элемент.

bindingtype="TourType"

Возможные значения атрибута bindingtype:

·  DepartFrom – город отправления;

·  Country – страна тура;

·  TourType – тип тура;

·  Resort – курорт;

·  City – город;

·  Tour – тур;

·  Hotel – отель;

·  Room – тип номера;

·  Nights – продолжительность тура;

·  HotelStarsкатегория отеля;

·  Pansion – питание;

·  CalendarTourDates – даты тура для использования в выпадающем списке;

·  CalendarTourDatesJs – даты тура для использования в календаре.

При использовании скриптового поиска в работе с ПК Мастер-Web обязательными фильтрами являются:

·  Город отправления;

·  Страна;

·  Даты тура.

3.1.2  Использование выпадающего списка

Пример использования:

<select id="lstDepartFrom" bindingtype="DepartFrom" sort="sd_ctfromname"

autoPostBack="true" style="width:230px;" >

<option value="-10"></option>

</select>

3.1.3  Использование списка чек-боксов

При использовании списка чек-боксов, помимо атрибутов, описанных выше, можно использовать атрибут repeatDirection="horizontal", что приводит к выводу списка по горизонтали, а не по вертикали, как это происходит при отсутствии атрибута.

Пример использования:

<div repeatDirection="horizontal" id="lstDuration" bindingtype="Nights" firstItem="Все" sort="sd_nights" autoPostBack="false" parentNodes="[lstDepartFrom][lstCountry][lstTourType][lstResort][lstCity][lstTour]" />

3.1.4  Использование календаря

При использовании календаря атрибут bindingtype у элемента должен быть равен CalendarTourDatesJs (а не CalendarTourDates, используемый для загрузки дат в выпадающий список). Также для поля с «Датой тура с» должен использоваться идентификатор dpTourDateFrom, а для поля с «Датой тура по» должен использоваться идентификатор dpTourDateTo.

Пример использования:

<table>

<tr>

<td>Дата тура c:</td>

<td>

<input type="text" id="dpTourDateFrom"

bindingtype="CalendarTourDatesJs" sort="td_date" autoPostBack="false" parentNodes="[lstDepartFrom][lstCountry][lstTourType][lstResort][lstCity][lstTour]" />

</td>

</tr>

<tr>

<td>Дата тура по:</td>

<td>

<input type="text" id="dpTourDateTo" style="width:65px;"/>

</td>

</tr>

</table>

3.2  Разметка элементов результата поиска

Результат поиска отображается в таблице <table id="searchResultTable" style="display:none;" searchServiceUrl="http://online. *****/WSJsSearch/SearchScriptService. asmx" TotalCount="0" ParsedCount="0">.

Первая строка <tr class="searchResultTableHeader"> описывает заголовок таблицы. Если при нажатии на заголовок столбца необходимо провести сортировку по его значениям, то в ячейку заголовка добавляется ссылка следующего вида:

<a href="javascript:SetSort('TurDateSort');"> , где в функцию SetSort передается тип сортировки.

Возможны следующие типы сортировки:

·  По дате заезда, по цене, по категории гостиниц в обратном порядке: TurDateSort = "pt_tourdate {0}, pt_price, pt_hdstars desc ";

·  По названию отеля, по цене, по дате заезда: HotelSort = "pt_hdname {0}, pt_price, pt_tourdate ";

·  По категории отеля, по цене, по дате заезда: StarsSort = "pt_hdstars {0}, pt_price, pt_tourdate ";

·  По названию города, по цене, по категории отеля в обратном порядке, по дате заезда: RegionSort = "pt_ctname {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По названию типа номера, по цене, по категории отеля в обратном порядке, по дате заезда: RoomNameSort = "pt_rmname {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По коду типа номера, по цене, по категории отеля в обратном порядке, по дате заезда: RoomCodeSort = "pt_rmcode {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По названию категории номера, по цене, по категории отеля в обратном порядке, по дате заезда: RoomCategoryNameSort = "pt_rcname {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По коду категории номера, по цене, по категории отеля в обратном порядке, по дате заезда: RoomCategoryCodeSort = "pt_rccode {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По названию размещения, по цене, по категории отеля в обратном порядке, по дате заезда: AccomodationNameSort = "pt_acname {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По коду размещения, по цене, по категории отеля в обратном порядке, по дате заезда: AccomodationCodeSort = "pt_accode {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По названию питания, по цене, по категории отеля в обратном порядке, по дате заезда: PansionNameSort = "pt_pnname {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По коду питания, по цене, по категории отеля в обратном порядке, по дате заезда: PansionCodeSort = "pt_pncode {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По продолжительности тура в ночах, по цене, по категории отеля в обратном порядке, по дате заезда: NightsSort = "pt_nights {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По цене, по категории отеля в обратном порядке, по дате заезда: PriceSort = "pt_price {0}, pt_hdstars desc, pt_tourdate ";

·  По валюте, по цене, по категории отеля в обратном порядке, по дате заезда: CurrencySort = "pt_rate {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По названию тура, по цене, по категории отеля в обратном порядке, по дате заезда: SpoSort = "pt_tourname {0}, pt_price, pt_hdstars desc, pt_tourdate ";

·  По типу цены (за человека или за номер), по дате заезда, по цене, по категории отеля в обратном порядке: PriceForSort = "pt_topricefor {0}, pt_tourdate, pt_price, pt_hdstars desc ";

·  По количеству основных мест, по количеству дополнительных мест, по цене, по категории отеля в обратном порядке: PlacesCountSort = "pt_mainplaces {0}, pt_addplaces {0}, pt_price, pt_hdstars desc ";

Далее в строке задается формат отображения вариантов тура. Формат задается через расставление «закладок», которые будут заменены соответствующими значениями. Возможные варианты закладок:

·  Даты заезда - "%TourDate%"

·  Название отеля - "%HotelName%"

·  Ссылка на описание отеля - "%HotelURL%"

·  Категория отеля - "%HotelCategory%"

·  Название города - "%CityName%"

·  Название типа номера - "%RoomName%"

·  Название категории номера - "%RoomCategoryName%"

·  Название размещения - "%AccomodationName%"

·  Название типа питания - "%PansionName%"

·  Продолжительность в ночах - "%Nights%"

·  Стоимость - "%Price%"

·  Валюта - "%Currency%"

·  Название тура - "%TourName%"

·  Ссылка на описание тура - "%TourURL%"

·  Квота на отель - "%HotelQuota%"

·  Квота на прямой рейс - "%CharterThereQuota%"

·  Квота на обратный рейс - "%CharterBackQuota%"

Закладки по квотам на перелет задаются с индексом на конце, например: "%CharterThereQuota0%","%CharterThereQuota1%","%CharterThereQuota2%","%CharterBackQuota0%","%CharterBackQuota1%","%CharterBackQuota2%", где индекс – порядковый номер класса перелета заданного в конфигурационном файле сервиса <dynamicCharterClasses mode="complex">, начиная с нуля.

4  Работа в системе

Программный продукт предоставляет возможность формирования следующих критериев подбора тура:

·  Город отправления

·  Страна тура

·  Тип тура

·  Курорт

·  Город

·  Тур

·  Отель

·  Тип номера

·  Продолжительность тура

·  Категория отеля

·  Питание

·  Даты тура

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

В поставку программного продукта входит файл FilterBindingClient. htm, задав в котором адрес расположения web-сервиса загрузки фильтра и экрана поиска, можно посмотреть пример работы программного продукта, а также изучить формат правильно размеченного документа.

В поставку программного продукта входит файл FilterBindingClientQD. htm, на котором по нажатию кнопки «Поиск» отображаются результаты отбора. Если задать адрес расположения web-сервиса загрузки фильтра и экрана поиска в этом файле, то можно посмотреть пример работы программного продукта, а также изучить формат правильно размеченного документа.