[mSearch2] Версия 1.1.0-rc с улучшенным поиском
Спешу представить вам новую версию моего самого популярного платного дополнения для поиска и фильтрации в MODX — mSearch2.
Изменений очень много, и они очень серьёзные, особенно у поиска. Поэтому при установке этой версии таблицы с индексом создаются заново. Вам нужно будет полностью проиндексировать сайт сразу после обновления.
Самое главное изменение — это новый формат таблицы индекса. Раньше туда сохранялись только id ресурса, слово и его вес, согласно настроек сайта на момент индексирования. Если слово встречалось несколько раз на странице, то в индекс оно попадало только один раз, в порядке, указанном в системной настройке mse2_index_fields. Если вы меняли эту настройку, вам нужно было заново индексировать весь сайт.
А сейчас сохраняется id ресурса, слово, поле ресурса и сколько раз слово встретилось в этом поле. Таким образом, теперь вы можете указать, по каким полям ресурса искать, прямо в вызове сниппета параметром &fields=``.
Также заодно я добавил новый параметр &onlyIndex=`1`. При его активации поиск идёт только по базе слов, не добавляя бонус за точное совпадения, и не добавляя результатов, найденных по индексу документа при помощи LIKE.
Дополнение теперь работает с AjaxManager. Можно добавлять слово msearch2 в системную настройку ajaxmanager.compatible_namespaces.
Исправлена загрузка Font Awesome, там вкралась опечатка.
[#29] Раскомментировал обратно кнопку очистки всех поисковых запросов в админке.
[#27] Добавлена возможность указывать пагинатору и сниппету фильтрации набор параметров прямо в имени:
[#25] Наконец-то добавлены всеми любимые select фильтры! Конечно, с ними пришлось повозиться, но теперь они работаю прямо из коробки.
Для них предусморено 2 специальных чанка, а фильтры, которые в них выводятся, желательно добавлять в &suggestionsRadio=``:
[#23] Если для фильтрации используется параметр &toSeparatePlaceholders=`mse2`, который может принимать и используемый сниппет (например, pdoResources), то он выставит свои данные в плейсхолдеры [[+mse2.0]], [[+mse2.1]] и т.д.
Так вот, теперь эти плейсхолдеры собираются и выставляются в одном общем — [[+mse2.results]], для вашего удобства.
Вот такое вышло большое обновление mSearch2. Обновляем (или покупаем), тестируем и пишем отзывы.
Наше любимое сообщество я уже обновил, сейчас идёт индексация.
Ссылка на магазин.
Ссылка на документацию, я там всё уже обновил.
Изменений очень много, и они очень серьёзные, особенно у поиска. Поэтому при установке этой версии таблицы с индексом создаются заново. Вам нужно будет полностью проиндексировать сайт сразу после обновления.
Самое главное изменение — это новый формат таблицы индекса. Раньше туда сохранялись только id ресурса, слово и его вес, согласно настроек сайта на момент индексирования. Если слово встречалось несколько раз на странице, то в индекс оно попадало только один раз, в порядке, указанном в системной настройке mse2_index_fields. Если вы меняли эту настройку, вам нужно было заново индексировать весь сайт.
А сейчас сохраняется id ресурса, слово, поле ресурса и сколько раз слово встретилось в этом поле. Таким образом, теперь вы можете указать, по каким полям ресурса искать, прямо в вызове сниппета параметром &fields=``.
[[!mSearch2?
&fields=`pagetitle:5,comment:2,introtext:3`
]]
Более того, каждому полю вы можете указать вес, через двоеточие. Если параметр не заполнен, или у полей не проставлен вес, то берутся данные из системной настройки индексирования.Также заодно я добавил новый параметр &onlyIndex=`1`. При его активации поиск идёт только по базе слов, не добавляя бонус за точное совпадения, и не добавляя результатов, найденных по индексу документа при помощи LIKE.
Исправления
Дополнение теперь работает с AjaxManager. Можно добавлять слово msearch2 в системную настройку ajaxmanager.compatible_namespaces.
Исправлена загрузка Font Awesome, там вкралась опечатка.
[#29] Раскомментировал обратно кнопку очистки всех поисковых запросов в админке.
[#27] Добавлена возможность указывать пагинатору и сниппету фильтрации набор параметров прямо в имени:
[[!mFilter2?
&paginator=`pdoPage@MyParams`
&element=`pdoResources@MyAnotherParams`
...
]]
Обратите внимание, что параметры элемента полюбому попадут в пагинатор, а параметры пагинатора — в элемент. Не знаю, есть ли какая-то практическая польза от этого нововведения, но раз просили — добавил.[#25] Наконец-то добавлены всеми любимые select фильтры! Конечно, с ними пришлось повозиться, но теперь они работаю прямо из коробки.
Для них предусморено 2 специальных чанка, а фильтры, которые в них выводятся, желательно добавлять в &suggestionsRadio=``:
[[!mFilter2?
&class=`msProduct`
&element=`msProducts`
&parents=`0`
&filters=`
resource|parent
`
&tplFilter.outer.resource|parent=`tpl.mFilter2.filter.select`
&tplFilter.row.resource|parent=`tpl.mFilter2.filter.option`
&suggestionsRadio=`resource|parent`
]]
Добавление в «Вы выбрали» и предсказания работают.[#23] Если для фильтрации используется параметр &toSeparatePlaceholders=`mse2`, который может принимать и используемый сниппет (например, pdoResources), то он выставит свои данные в плейсхолдеры [[+mse2.0]], [[+mse2.1]] и т.д.
Так вот, теперь эти плейсхолдеры собираются и выставляются в одном общем — [[+mse2.results]], для вашего удобства.
Заключение
Вот такое вышло большое обновление mSearch2. Обновляем (или покупаем), тестируем и пишем отзывы.
Наше любимое сообщество я уже обновил, сейчас идёт индексация.
Ссылка на магазин.
Ссылка на документацию, я там всё уже обновил.
Комментарии: 1
Класс!
Наконец-то появились select фильтры из коробки! Спасибо большое! :)
Наконец-то появились select фильтры из коробки! Спасибо большое! :)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.