AdvSearch

Сниппет AdvSearch

Этот сниппет отображает результаты поиска.

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

Просто поместите вызов сниппета туда, где хотите отобразить результаты поиска.

[[!AdvSearch]]

Параметры сниппета

Создание запроса

Указываем где искать и какие результаты получить.

Имя Описание По умолчанию
contexts Контекст для поиска. web
fields Список полей доступных в результатах поиска. pagetitle,longtitle,alias,description,introtext,content
hideContainers Обрабатывание ресурсов контейнеров(isContainers). 0 : учитываем документы контейнеры. 1 : исключаем документы контейнеры. 0
hideMenu Обрабатывание скрытых ресурсов (hidemenu). 0 : показываем только видимые ресурсы, 1 : показываем только скрытые ресурсы, 2 : отображаются все. 2
ids Id ресурсов по которым будет произведен поиск, id должны быть разделены запятыми.
parents id ресурсов родителей разделенных запятыми, поиск будет происходит по вложенным ресурсам.
includeTVs Разделенный запятыми список TV имен которые необходимо включить в результаты поиска.
queryHook Название сниппета для изменения запроса.
withFields Список полей по которым будет производиться поиск. pagetitle,longtitle,alias,description,introtext,content
withTVs Список TV полей по которым будет производиться поиск.
Организация результатов поиска

Сортировка и ограничение результатов поиска.

Имя Описание По умолчанию
fieldPotency Поле по которому призводится сортировка. createdon
perPage Количество результатов поиска отображенных на странице. 10
sortby Направление и поле для сортировки, в виде "field [ASC]". createdon DESC
showExtract Ищем повторения в определенных полях, повторения указываются в виде "1:content". Искомое слово ищется в связанных полях. 1:content
Дизайн страницы результатов

Стиль страницы результатов

Имя Описание По умолчанию
containerTpl Чанк, который будет использоваться, чтобы обернуть Все результаты поиска, нумерацию страниц и сообщений. SearchResults
tpl Чанк, который будет использоваться для отображения содержимого каждого результата поиска. AdvSearchResult
pagingType Тип пагинации. Тип 0 или 1 1
pageTpl Чанк для вывода пагинации. PageLink
paging1Tpl Чанк пагинации при типе 1 Paging1
paging0Tpl Чанк пагинации при типе 0 Paging0
currentPageTpl Чанк который используется для текущей пагинации. CurrentPageLink
pagingSeparator Разделитель для вставки между ссылки пагинации |
extractEllipsis Строка, используемая для обертывания каждой строки запроса. По умолчанию используется ... ...
extractLength Длина строки результата поиска. 200
extractTpl Чанк для обертки каждого блока строки запроса. Extract
highlightClass Имя CSS-класса для добавления к выделенному результату поиска. advsea-highlight
highlightResults Стоит ли выделять искомое слово в результатах. 1
highlightTag HTML-тег для обертки найденных слов в результатах поиска. span
placeholderPrefix Префикс глобального плейсхолдера. span
toPlaceholder Префикс глобального плейсхолдера. Замена плейсхолдера для вывода

Общий дизайн AdvSearch

Создаем свой собственный поиск

Имя Описание По умолчанию
asId Уникальный идентификатор для экземпляра AdvSearch. Любая комбинация символов от A до Z, знак подчеркивания и цифры 0-9. Чувствителен в регистру. as0
engine Система поиска ('mysql' , 'zend' or 'all'). mysql
init Показываем все результаты или нет при первой загрузке страницы поиска ('all' or 'none'). none
maxWords Максимальное количество слов, которые необходимо включить в поиск. 20
method Метод для организации запроса POST or GET. GET
minChars Минимальное количество символов строки для поиска. 3
offsetIndex Имя параметра запроса, для хранения пагинации. offset
output Тип выхода. 'json' или 'HTML' json-вывод предоставляет результаты в виде json-объекта. html
searchIndex Имя параметра запроса, слово по которому будем искать. search
urlScheme Схема в которой будет возвращаться ссылки (-1, 0, 1, full, abs, http, https). -1

Системные настройки

Параметры для системных настроек.

Имя Описание По умолчанию
docindexPath путь до assets/files/ docindex/
libraryPath путь до папки где содержится Zend библиотека libraries/

AdvSearch чанки

Некоторые чанки обрабатываются в AdvSearch. Они соответствуют параметрам AdvSearch:

  • tpl - AdvSearchResult: Чанк для каждого результата запроса.
  • containerTpl - AAdvSearchResults: Чанк, для обертки результатов запроса, нумерации страниц и сообщений.

В зависимости от типа пагинации:

Пагинация тип 1:

  • paging1Tpl - Paging1: Чанк для пагинации 1 типа.

Пагинация тип 0:

  • paging0Tpl - Paging0: Чанк для пагинации 0 типа.

Отображать результаты, но просто показывают их названия:

[[!AdvSearch? &showExtract=`0`]]

Отображаем все результаты, но только детей ресурса с идентификатором 15, скрываем ресурсы контейнеры и выделяем результаты тегом с 'strong':

[[!AdvSearch? &ids=`[[!GetIds? &ids=`c15`]]` &hideContainers=`1` &highlightTag=`strong`]]

Совершаем поиск по полю introtext и TV полю mytv. Запрашиваем поля для вывода pagetitle,introtext. Настраиваем поиск совпадений в поле 'introtext'. Показываем не более 2 совпадений в поле. И, наконец, устанавливаем вывод результатов в плейсхолдер 'results':

[[!AdvSearch? &withFields=`introtext` &withTVs=`mytv` &fields=`pagetitle,introtext` &showExtract=`2:introtext` &toPlaceholder=`results`]]