MODX. Поиск на сайте с использованием AdvSearch
Отредактировано: 29 Июля 2018
AdvSearch — поиск для MODX, немного более функциональный, при сравнении с SimpleSearch. Главный недостаток дополнения на текущий момент — устаревшая документация. Для полноценной работы компонента на сервере должен быть установлен Zend Framework, большинство современных хостингов устанавливают его по умолчанию. Если подыскиваете себе удобный хостинг с минимумом проблем с настройкой, рекомендую использовать Timeweb.
Настройка поиска с использованием AdvSearch:
- Установить дополнение AdvSearch;
- Создать новый ресурс, страницу на которой будет отображаться результат поиска:
[[!AdvSearch]]
Запомните ID созданного ресурса — он нам еще понадобится.
- Имя: Результаты поиска;
- Псевдоним: search;
- Галки: «не показывать в меню» и «Оубликован»;
- Убрать галки: «Доступен для поиска», «Кешируемый»;
- В поле содержимого вставляем
- В шаблон, на место где должен находиться поиск вставляем следующий код:
-
[[!AdvSearch? &landing=`1` &tpl=`tpl.search`]]
- &tpl: шаблон формы поиска.
- &landing: ID созданной страницы;
-
-
Создаем чанк tpl.search. Код можно использовать такой:
<div class="search"> <form id="[[+advsearch.asId]]_advsea-form" method="[[+advsearch.method]]" action="[[~[[+advsearch.landing]]]]"> <input type="hidden" name="id" value="[[+advsearch.landing]]" /> <input type="hidden" name="asId" value="[[+advsearch.asId]]" /> [[+advsearch.helpLink]]<input type="text" id="[[+advsearch.asId]]_advsea-search" name="[[+advsearch.searchIndex]]" value="[[+advsearch.searchValue]]" placeholder="Что ищем?"> [[+advsearch.liveSearch:isnot=`1`:then=`<input type="submit" id="[[+advsearch.asId]]_advsea-submit" name="sub" value="[[%advsearch.search? &namespace=`advsearch` &topic=`default`]]" />`:else`=``]] </form> </div> [[+advsearch.resultsWindow]]
Теперь поиск должен появиться на сайте.
Параметры сниппета AdvSearchForm
Дополнительные функции
Название | По умолчанию | Описание |
---|---|---|
clearDefault | 1 | Отключает текст по умолчанию. Поставьте 0 если вам не нравится отсутствие текста. |
help | 1 | Добавляет ссылку помощи рядом с формой. Установите 1 для отображения и 0 для ее отсутствия. |
Настройка
Название | По умолчанию | Описание |
---|---|---|
asId | as0 | Уникальный ID для экземпляра AdvSearch. Любая комбинация символов az, подчеркивание и цифры 0-9. Чувствительный. |
landing | Ресурс, на который ссылается экземпляр AdvSearch, на котором будут отображаться результаты поиска. | |
method | GET | Выбор метода, GET или POST. |
searchIndex | search | Имя параметра REQUEST, который будет использоваться поиском. |
toPlaceholder | Если указан параметр, все данные будут сохраняться в плейсхолдере с этим именем. | |
tpl | SearchForm | Блок, с шаблоном для отображения формы поиска. |
Управление файлами
Название | По умолчанию | Описание |
---|---|---|
addJs | 1 | Установите 1, если хотите включить файл advsearchform.min.js, и 0, если нет |
addCss | 1 | Установите 1, если хотите включить файл advsearch.css, и 0, если нет |
addJQuery | 1 | Установите 1, если хотите включить библиотеку jQuery в заголовке ваших страниц автоматически |
jsJQuery | assets/components/advsearch/js/jquery-1.5.1.min.js | Url, где расположена библиотека jquery |
jsSearchForm | assets/components/advsearch/js/advsearchform.min.js | Url (в каталоге assets/), где расположена библиотека js, используемая с формой (help, clearDefault, ...) |
Параметры сниппета AdvSearch
Настройка результатов
Название | По умолчанию | Описание |
---|---|---|
contexts | web | Контекст поиска. |
fields |
pagetitle, |
Разделенный запятыми список полей доступных в результатах поиска. |
hideContainers | 0 |
Поиск по ресурсам контейнерам: 0 — ищет во всех ресурсах. 1 — не ищет в ресурсах помеченных как контейнер. |
hideMenu | 2 |
Нужно ли показывать Ресурсы, на которых установлен флаг hidemenu: 0 — показывает только видимые ресурсы. 1 — показывает только скрытые ресурсы. 2 — показывает все. |
ids | Разделенный запятыми список ID которыми ограничивается область поиска. Используйте GetIds аддон для указания сложносоставных списков ID. | |
parents | Разделенный запятыми список ID родительских контейнеров, по потомкам которых должен происходить поиск. | |
includeTVs | Разделенный запятыми список дополнительных полей (TV), значения которых должны отображаться в результатах поиска. | |
queryHook | Имя сниппета изменяющего стандартный запрос. | |
withFields |
pagetitle, |
Разделенный запятыми список полей участвующих в поиске. |
withTVs | Разделенный запятыми список дополнительных полей (TV), которые должны участвовать в поиске. |
Организация результатов поиска
Название | По умолчанию | Описание |
---|---|---|
fieldPotency | createdon | Оценка и сортировка результатов. Разделенный запятыми список пар «поле: вес». |
perPage | 10 | Количество результатов отображаемых на странице |
sortby | createdon DESC | Разделенный запятыми список пар для сортировки. «поле [ASC]» |
showExtract | 1:content |
Выделяет ключевое слово в результатах поиска. Записывается как «n: список полей, разделенных запятыми». n — максимальное количество выписок по результату. Поисковый запрос выполняется в конкатенированных полях. |
Оформление страницы с результатами
Название | По умолчанию | Описание |
---|---|---|
containerTpl | SearchResults | Чанк, который будет использоваться для обертывания всех результатов поиска, разбивки на страницы и сообщений. |
tpl | AdvSearchResult | Чанк, который будет использоваться для отображения содержимого каждого результата поиска. |
pagingType | 1 | Тип разбивки на страницы. тип 0 или 1 |
pageTpl | PageLink | Чанк, используемый для ссылки на страницы. |
paging1Tpl | Paging1 | Чанк, используемый для пагинации типа 1 |
paging0Tpl | Paging0 | Чанк, используемый для пагинации типа 0 |
currentPageTpl | CurrentPageLink | Чанк, используемый для выбранной ссылки на страницы. (Тип пагинации 0) |
pagingSeparator | | | Разделитель используемый между ссылками на страницы в пагинации. (Тип пагинации 0) |
extractEllipsis | ... | Строка, используемая для переноса результатов пагинации. |
extractLength | 200 | Количество символов для вывода содержимого в каждом результате поиска. |
extractTpl | Extract | Чанк, который будет использоваться для обертывания каждого переноса. |
highlightClass | advsea-highlight | Имя класса CSS для добавления к подсвеченным условиям поиска в результатах. |
highlightResults | 1 | Выделять или нет поисковый запрос в тексте результата. |
highlightTag | span | Тег html, в который будет обернут выделенный запрос в результатах поиска. |
placeholderPrefix | advsearch (since 2.0.0) | Префикс для плейсхолдеров. |
toPlaceholder | Если указан, все результаты будут записаны в плейсхолдер с данным именем. |
Настройки AdvSearch
Название | По умолчанию | Описание |
---|---|---|
asId |
as0 |
Уникальный идентификатор для экземпляра AdvSearch. Любая комбинация символов az, подчеркивание и цифры 0-9. Чувствительный. |
engine | mysql | Поисковый алгоритм, выбирается среди «mysql», «zend» или «all». Режим «Zend» или «all» запрашивает репозиторий с индексированными ресурсами. |
init | none | Определяет, отображает ли поиск все результаты или нет, когда страница загружается в первый раз. 'all' или 'none' |
maxWords | 20 | Максимальное количество слов для включения в поиск. |
method | GET | Отправлять ли поиск через метод POST или GET. |
minChars | 3 | Минимальное количество символов, требуемое для того, чтобы слово было действительным для поиска. |
offsetIndex | offset | Имя параметра REQUEST, используемого для пагинации на странице. |
output | html | Тип для вывода данных. Варианты «json» и «html». Json предоставляет результаты как объект json. |
searchIndex | search | Имя параметра REQUEST, который будет использоваться поиском. |
urlScheme | -1 | Указывает, в каком формате создается URL. -1, 0, 1, полный, abs, http, https |
Пользовательские установки
Название | По умолчанию | Описание |
---|---|---|
docindexPath | docindex/ | путь до assets/files/ где расположены Lucene индексы документов |
libraryPath | libraries/ | путь до assets/ где расположена Zend библиотека |
Здравствуйте!
Позвольте представиться, меня зовут Марина. Более 10 лет я занимаюсь обслуживанием сайтов и развитием интернет проектов. Если вы хотите избавиться от хлопот связанных с созданием и поддержкой сайта, тогда вы попали по адресу. При работе с сайтами я предоставляю качественные услуги, ориентируясь на ваши индивидуальные потребности. Для связи со мной воспользуйтесь формой обратной связи.