Modx поиск по сайту с помощью SimpleSearch

Modx поиск по сайту с помощью SimpleSearch

Всем добрый день.

Сегодня хочу вам рассказать о том, как я организовал поиск на своем сайте.

Сделал я это, с помощью плагина 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.

Похожие записи:
[Modx REVO] Плейсхолдеры и Поля Ресурсов: различия между плюсом и звездочкой
[Modx REVO] Плейсхолдеры и Поля Ресурсов: различия между плюсом и звездочкой

Одним из преимуществ MODX является гибкое шаблонирование. Большая часть гибкости Подробнее:

Minishop2 минимальная сумма в заказе
Minishop2 минимальная сумма в заказе

Итак, допустим клиенту потребовалось, чтобы помимо сообщений о том, что Подробнее:

Modx REVO Устанавливаем шаблон по умолчанию для ресурсов через плагин
Modx REVO Устанавливаем шаблон по умолчанию для ресурсов через плагин

В MODX Revo, как вы уже заметили, при создании дочерних ресурсов, Подробнее:

MiniShop2. Оформление заказа (обязательные поля)
MiniShop2. Оформление заказа (обязательные поля)

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *