Компонент поиска и фильтрации mSearch2

На прошлом занятии мы рассмотрели простой вывод каталога товаров сниппетами miniShop2. Как мы помним, товары - это расширенные ресурсы MODX, а значит, с ними можно работать и другим сниппетам.
Сегодня мы познакомимся с платным дополнение для MODX, которое осуществляет поиск и фильтрацию любых ресурсов - mSearch2.
Основные особенности:
  • Морфологический поиск сразу на нескольких языках. По умолчанию - русский и английский.

  • Обновление поискового индекса автоматически, при сохранении ресурса в админке.

  • Возможность задать "поисковый вес" каждому индексируемому полю ресурса.

  • Возможность индексации ТВ параметров и комментариев Tickets.

  • Поиск по ресурсам внутри админки сайта.

  • Сохранение поисковых запросов и управление синонимами слов.

  • Автоподсказки и быстрый поиск.

  • Ajax фильтрация результатов поиска с построением прямых url через History Api.

  • Возможность расширения класса фильтрации для прописывания собственной логики.

  • Гибкая работа с шаблонами оформления - для каждого фильтра есть возможность назначить собственные.

  • Высокая скорость работы и поиска, и фильтра.

  • Возможность выводить результаты поиска и фильтрации любыми сниппетами.

Установка

После покупки дополнения в репозитории Simple Dream, вам нужно загрузить и установить его на сайт. При этом будут скачаны 2 словаря phpMorphy, которые обеспечивают работу с морфологией.
Затем, в админке, вы можете загрузить еще дополнительные словари:
После этого вам нужно проиндексировать весь сайт. Делается это только после первой установки mSearch2, изменении набора языков или настроек индексировани.
После этого вы уже можете что-то искать в админке.
Обратите внимание, что поиск - морфологический. Например, по запросу "товары" mSearch2 находит рсеурсы с названием "Товар", а вот встроенный поиск MODX 2.3 - нет. Он ищет точное совпадение.
Таким образом, вы получаете морфологический поиск по ресурсам сайта прямо в админке.

Вывод на сайте

Есть два способа вывода поиска на сайте: простой и с фильтрацией.
Простой способ - это вывод формы поиска, и результатов с постраничной разбивкой под ней.
[[!mSearchForm?
    &autocomplete=`results`
]]

[[!pdoPage?
    &element=`mSearch2`
]]

[[!+page.nav]]
Автоподсказки выводятся сразу по результатам запроса. То есть, это даже не подсказки, а быстрый поиск - если кликнуть на результат, то вы сразу перейдёте на страницу ресурса - http://minishop2.com/search/simple.
Более продвинутый вывод поиска, с фильтрацией:
[[!mSearchForm?
    &autocomplete=`queries`
]]

[[!mFilter2?
    &forceSearch=`1`
]]
Параметр &forceSearch=1 указывает фильтру, что не нужно сразу выводить ресурсы для фильтрации - должен быть поисковый запрос. Также здесь уже включен режим автоподсказок по истории запросов.
Как видите, использовать mSearch2 очень просто - http://minishop2.com/search/filter.

Вывод каталога товаров miniShop2

В отличии от других подобных решений фильтрации, mFilter2 строит фильтры динамически, в зависимости от выводимых ресурсов. А это значит, чтобы мы можем использовать msProducts для вывода товаров.
[[!mFilter2?
    &parents=`0`
    &limit=`10`
    &element=`msProducts`
    &filters=`
        ms|price:number
        ,parent:categories
        ,msoption|tags
        ,ms|vendor:vendors
    `
    &class=`msProduct`
    &tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
    &tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
]]
Всё оформление блока вывод находится в чанке tpl.mFilter2.outer, также мы указываем специальные числовые чанки для вывода слайдера с ценой.
Пожалуй, это самый крутой способ выводить товары сайта - http://minishop2.com/catalog/.

Заключение

Вот мы и познакомились с самым популярным платным дополнением магазина Simple Dream. Конечно, это только верхушка айсберга, и возможности для фильтрации ресурсов поистине неисчерпаемы.
Например, вы можете добавить товару новое поле через плагины miniShop2 и настроить фильтрацию по нему - вот готовая инструкция.
Вообще, рекомендую внимательно почитать документацию на сайте http://docs.modx.pro/components/msearch2/, там всё очень подробно расписано.
Самостоятельно пробовать платные дополнения перед покупкой можно на http://tefile.modx.pro.
На следующем занятии мы познакомимся с другим платным компонентом Office, который позволяет сделать красивую авторизацию, работу с профилем пользователя и вывод заказов miniShop2.