_________________________________________________________________________________________________________ Москва, Севастопольский пр-т, 56/40 тел. (495) 334 93 45, 334 93 56 http://www.megatec.ru _____________________________________________________________________________________________ Скриптовый поиск Руководство пользователя Москва, 2016 г. Скриптовый поиск Руководство пользователя Оглавление Оглавление Оглавление .....................................................................................................................................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 Megatec 2 29.04.2016 г Скриптовый поиск Руководство пользователя О программе Данный модуль предназначен для предоставления возможности самостоятельного формирования поискового фильтра для подбора тура и либо вывода результата поиска на той же странице, либо для последующей передачи полученных критериев в поисковую. Скриптовый поиск позволяет индивидуально настроить поисковый фильтр и отображение результатов. Т.е. визуально поиск можно будет настроить как угодно, используя практически любой набор фильтров. Также скриптовый поиск может понадобиться, в случае, если сайт находится на хостинге, отличном от хостинга приложения iis. Он не требует наличия iis на сервере. Его можно встроить в php-сайт или статичную страницу html. Полученные критерии могут передаваться в любую поисковую систему по любой ссылке, но параметры в url будут такие, какие принимает Мастер-Веб. 1 Настройка Настройки приложения Программный продукт представляет собой набор скриптовых файлов, написанных на языке JavaScript, а, следовательно, не предъявляет требований к платформе webсервера, на котором будет опубликован. Получение данных для формирования фильтра производится через Web-сервис «Сервис по загрузке поискового фильтра» (FilterBinding). 1.1 1.1.1 Правила HTML-разметки для загрузки поискового фильтра Подключение к 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страница. Если какие-либо из файлов данного программного продукта уже были подключены на странице ранее, добавлять ссылки на них повторно не следует, но необходимо убедиться, что версии этих файлов не ниже поставляемых с продуктом. Megatec 3 29.04.2016 г Скриптовый поиск Руководство пользователя Задание области поискового фильтра на html-странице 1.1.2 Область, в которой будут расположены элементы поискового фильтра, должна быть выделена элементом div с идентификатором searchfilter, а также атрибутами navigateUrl и filterBindingServiceUrl. Атрибут navigateUrl задает адрес экрана подбора туров, в который будут переданы результаты формирования поискового фильтра. Атрибут filterBindingServiceUrl задает адрес web-сервиса загрузки поискового фильтра, через который будет происходить загрузка данных. Пример разметки области поискового фильтра: <div id="searchfilter" navigateUrl="http://book.r-express.ru/Extra/QuotedDynamic.aspx" filterBindingServiceUrl="http://online.rexpress.ru/WSJsSearch/FilterBindingScriptService.asmx" style="width:380px;"> <!--Разметка поискового фильтра--> </div> Адрес экрана подбора туров при использовании фреймов 1.1.2.1 При использовании экрана «Скриптовый поиск» во фреймах, атрибут navigateUrl будет принимать другое значение. Пример разметки области поискового фильтра: <div id="searchfilter" navigateUrl="http://ip-адрес сервера/JSSearch/Results.htm" filterBindingServiceUrl=" http://online.r-express.ru/WSJsSearch /FilterBindingScriptService.asmx" style="width:380px;"> <!--Разметка поискового фильтра--> </div> Адрес экрана подбора туров, в который будут переданы результаты формирования поискового фильтра, в этом случае будет задаваться на странице Results.htm: source = ‘http://book.r-express.ru/extra/quoteddynamic.aspx' 2 Подготовка данных 2.1 2.1.1 Разметка элементов поискового фильтра Общие положения Элемент поискового фильтра может быть представлен выпадающим списком (элемент <select></select>), списком чек-боксов (элемент <div></div>), полем текстового ввода с зависимым от него календарем (элемент <input></input>). Элемент поискового фильтра должен содержать идентификатор, определенный в схеме сервиса загрузки фильтра, и следующие атрибуты: Название атрибута autoPostBack bindingtype Описание Примеры использования Необходимость отправлять запрос на autoPostBack="true" загрузку поискового фильтра к web- autoPostBack="false" сервису, если значение данного элемента было изменено. Определение типа критерия поискового bindingtype="TourType" фильтра, подгружаемого в элемент. Возможные значения атрибута bindingtype: Megatec 4 29.04.2016 г Скриптовый поиск Руководство пользователя DepartFrom – город отправления; Country – страна тура; TourType – тип тура; Resort – курорт; City – город; Tour – тур; Hotel – отель; Room – тип номера; Nights – продолжительность тура; HotelStars – категория отеля; Pansion – питание; CalendarTourDates – даты тура для использования в выпадающем списке; CalendarTourDatesJs – даты тура для использования в календаре. При использовании скриптового поиска в работе с ПК Мастер-Web обязательными фильтрами являются: Город отправления; Страна; Даты тура. Использование выпадающего списка 2.1.2 Пример использования: <select id="lstDepartFrom" bindingtype="DepartFrom" sort="sd_ctfromname" autoPostBack="true" style="width:230px;" > <option value="-10"></option> </select> Использование списка чек-боксов 2.1.3 При использовании списка чек-боксов, помимо атрибутов, описанных выше, можно использовать атрибут repeatDirection="horizontal", что приводит к выводу списка по горизонтали, а не по вертикали, как это происходит при отсутствии атрибута. Пример использования: <div repeatDirection="horizontal" id="lstDuration" bindingtype="Nights" firstItem="Все" sort="sd_nights" autoPostBack="false" parentNodes="[lstDepartFrom][lstCountry][lstTourType][lstResort][lstCity][lst Tour]" /> Использование календаря 2.1.4 При использовании календаря атрибут bindingtype у элемента должен быть равен CalendarTourDatesJs (а не CalendarTourDates, используемый для загрузки дат в выпадающий список). Также для поля с «Датой тура с» должен использоваться идентификатор dpTourDateFrom, а для поля с «Датой тура по» должен использоваться идентификатор dpTourDateTo. Пример использования: Megatec 5 29.04.2016 г Скриптовый поиск Руководство пользователя <table> <tr> <td>Дата тура c:</td> <td> <input type="text" id="dpTourDateFrom" bindingtype="CalendarTourDatesJs" sort="td_date" autoPostBack="false" parentNodes="[lstDepartFrom][lstCountry][lstTourType][lstResort][l stCity][lstTour]" /> </td> </tr> <tr> <td>Дата тура по:</td> <td> <input type="text" id="dpTourDateTo" style="width:65px;"/> </td> </tr> </table> Разметка элементов результата поиска Результат поиска отображается в таблице <table id="searchResultTable" 2.2 style="display:none;" searchServiceUrl="http://online.rexpress.ru/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 "; Megatec 6 29.04.2016 г Скриптовый поиск Руководство пользователя Далее в строке задается формат отображения вариантов тура. Формат задается через расставление «закладок», которые будут заменены соответствующими значениями. Возможные варианты закладок: Даты заезда - "%TourDate%" Название отеля - "%HotelName%" Ссылка на описание отеля - "%HotelURL%" Категория отеля - "%HotelCategory%" Название города - "%CityName%" Название типа номера - "%RoomName%" Название категории номера - "%RoomCategoryName%" Название размещения - "%AccomodationName%" Название типа питания - "%PansionName%" Продолжительность в ночах - "%Nights%" Стоимость - "%Price%" Валюта - "%Currency%" Название тура - "%TourName%" Ссылка на описание тура - "%TourURL%" Квота на отель - "%HotelQuota%" Квота на прямой рейс - "%CharterThereQuota%" Квота на обратный рейс - "%CharterBackQuota%" Закладки по квотам на перелет задаются с индексом на конце, например: "%CharterThereQuota0%","%CharterThereQuota1%","%CharterThereQuota2%","%CharterBackQuota0%","%Char где индекс – порядковый номер класса перелета заданного в конфигурационном файле сервиса <dynamicCharterClasses mode="complex">, начиная с нуля. terBackQuota1%","%CharterBackQuota2%", 3 Работа в системе Программный продукт предоставляет возможность формирования следующих критериев подбора тура: Город отправления Страна тура Тип тура Курорт Город Тур Отель Тип номера Продолжительность тура Категория отеля Питание Даты тура Результатом работы программного продукта является сформированный поисковый фильтр, готовый к передаче в экран подбора туров. В поставку программного продукта входит файл FilterBindingClient.htm, задав в котором адрес расположения web-сервиса загрузки фильтра и экрана поиска, можно посмотреть пример работы программного продукта, а также изучить формат правильно размеченного документа. Megatec 7 29.04.2016 г Скриптовый поиск Руководство пользователя В поставку программного продукта входит файл FilterBindingClientQD.htm, на котором по нажатию кнопки «Поиск» отображаются результаты отбора. Если задать адрес расположения web-сервиса загрузки фильтра и экрана поиска в этом файле, то можно посмотреть пример работы программного продукта, а также изучить формат правильно размеченного документа. Megatec 8 29.04.2016 г