Modx поиск по сайту
Опубликовано 07.10.2017

Всем добрый день.
Сегодня хочу вам рассказать о том, как я организовал поиск на своем сайте.
Сделал я это, с помощью плагина SimpleSearch. Так что сразу заходим в установщик приложений, ищем этот плагин и устанавливаем.
SimpleSearch Modx Revo
Необходимо создать новую страницу для вывода результатов поиска. Я назвал ее "Результаты поиска", убрал галочку "Доступен для поиска" и поставил галку "Не показывать в меню". В содержимое страницы вставил следующее:
[[!SimpleSearch]]
Дальше необходимо определиться где будет располагаться наша форма для ввода поискового запроса. В моем случае я регил сделать ее в правом сайдбаре. Для того чтобы вывести ее открываем чанк(или шаблон) отвечающий за эту часть шаблона и в нужном месте вставляем следующее:
[[!SimpleSearchForm? &landing=`146` &tpl=`search`]]
Разберем данную запись:
&landing=`146`- 146 здесь это id страницы с результатами поиска которую мы создали в самом начале(у вас id будет отличатся)
&tpl=`search`- название чанка отвечающего за внешний вид формы
Далее открываем чанк search и вставляем в него следующий код:
<form class="sisea-search-form" action="[[~[[+landing]]]]" method="[[+method]]">
<fieldset>
<input class="form-control error" type="text" name="[[+searchIndex]]" id="[[+searchIndex]]" value="[[+searchValue]]" placeholder="Введите Ваш запрос"/>
<input type="hidden" name="id" value="[[+landing]]" />
<input class="btn btn-primary btn-block" type="submit" value="[[%sisea.search? &namespace=`sisea` &topic=`default`]]" />
</fieldset>
</form>
Основные параметры и чанки SimpleSearch
Чанки:
- tpl - вывод каждого отдельного пункта результата поиска
- containerTpl - отвечает за обертку всех результатов поиска
- pageTpl - отвечает за вывод отдельной кнопки страницы пагинации
- currentPageTpl - для управления кнопкой в пагинации активной страницы
- noResultsTpl - когда нет результатов поиска
Параметры:
- depth - глубина поиска (стандартно - 10)
- hideMenu - скрыть или показать ресурсы, с галочкой- не показывать в меню (0 -только видимые ресурсы, 1 - только скрытые, 2 - все показывает)
- docFields - области для поиска документов (pagetitle,longtitle,alias,description,introtext,content)
- perPage - количество результатов поиска на странице (стандартно 10)
- extractLength - кол-во символов для извлечения каждого результата поиска, обычно 200
- includeTVs - включить в поиск TV (если много тв, то замедляет поиск)
- pagingSeparator - какой сепаратор сипользовать для разделения плагинации, обычно - палочка
- ids - разделенный запятыми список идентификаторов документов, что бы искать только в них
- idType - оганичение для верхнего параметра - родители или дети (parents, documents)
- exclude - список id документов, через запятую, которые надо исключить для поиска
- contexts - контексты для поиска
- sortBy - разделенный запятыми список полей ресурсов для сортировки
- sortDir - разделенный запятыми список направлений (кол-во должно совпадать с кол-вом в верхнем параметре)
На этом все.
Вот так вот просто организовать поиск по сайту на этой замечательной CMS.
Удачи всем. Подписывайтесь на обновления блога в форме ниже!)