На прошлом занятии мы рассмотрели простой вывод каталога товаров сниппетами 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 указывает фильтру, что не нужно сразу выводить ресурсы для фильтрации - должен быть поисковый запрос. Также здесь уже включен режим автоподсказок по истории запросов.
В отличии от других подобных решений фильтрации, 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, также мы указываем специальные числовые чанки для вывода слайдера с ценой.
Вот мы и познакомились с самым популярным платным дополнением
магазина Simple Dream. Конечно, это только верхушка айсберга, и возможности для фильтрации ресурсов поистине неисчерпаемы.
Например, вы можете добавить товару новое поле через плагины miniShop2 и настроить фильтрацию по нему - вот
готовая инструкция.
На следующем занятии мы познакомимся с другим платным компонентом Office, который позволяет сделать красивую авторизацию, работу с профилем пользователя и вывод заказов miniShop2.