[mSearch2] Версия 1.3.0 - псевдонимы фильтров

Представляю вам большое обновление компонента поиска и фильтрации mSearch2.

Во-первых, теперь можно указывать несколько фильтров для одного поля:
&filters=`
	createdon:year,
	createdon:month
`
Если какое-то поле указано 2 и более раз, то его имя прописывается как поле-фильтр и получается
createdon-year и createdon-month
Соответственно, вы можете указать для этих полей отдельные записи в лексиконах.

Однако, url фильтра становятся еще менее красивыми, чем были раньше, так что я поднапрягся и реализовал во-вторых — псевдонимы фильтров.

Теперь вы можете указать вызову сниппета новый параметр &aliases:
&aliases=`
    ms|price==price,
    resource|parent==parent,
`
&filters=`
    ms|price:number,
    parent:parents,
    parent:categories,
`
&tplFilter.outer.price=`tpl.mFilter2.filter.slider`
&tplFilter.row.price=`tpl.mFilter2.filter.number`

В результате, url будут вот такие:
site.com/mfilter2?price=102,750&parent=10,12,15

Обратите внимание, что указание псевдонимов влияет и на указание параметров шаблонов. То есть, если для ms|price указан псевдоним, то и чанк нужно указывать как &tplFilter.row.price, а не &tplFilter.row.ms|price.

Чтобы это работало, вам нужно обновить старые чанки или заменить у них самостоятельно
name="[[+table]][[+delimeter]][[+filter]]"
на
name="[[+filter_key]]"

Рабочий пример уже здесь — modx.pro/search?parent=21&year=2013&query=Тест&sort=date:desc. Если &aliases пуст, то всё работает как и раньше.

Еще добавлены фильтры month и day. Также в фильтрации дат исправлено несколько ошибок и немного оптимизирована работа предсказаний результатов.

Заключение


Новая версия уже доступна для обновления. Если вы еще не купили лучший компонент для поиска и фильтрации в MODX — самое время это сделать.

Документацию и параметры сниппетов обновил.
Василий Наумкин
16 апреля 2015, 16:26
modx.pro
2
3 593
+13

Комментарии: 9

Василий Столейков
16 апреля 2015, 20:50
+1
Спасибо огромное!
Очень приятные обновления, прямо праздник! Давно сталкивался со всеми вышеописанными проблемами. Дождался. =)
    Алексей
    27 апреля 2015, 19:30
    0
    И очень важное магическое обновление
    - [mFilter2] Improved suggestions for more optimal processing.
      Алексей
      17 мая 2015, 06:37
      0
      Подскажите, как уменьшить таблицу синонимов? возможно применение фильтров подобным тут habrahabr.ru/post/114947/?
        Валерий Савинов
        21 сентября 2015, 14:27
        0
        В официальной документации про
        name="[[+filter_key]]"
        ни слова.
        А так вообще спасибо за обновку =)
          Константин Ильин
          15 ноября 2015, 17:49
          0
          Василий, если не ошибаюсь в pdoPage теперь поддерживает 2-е пагинации на странице
          есть какой-то способ 2-е пагинации на странице для mSearch2?
          Алексей
          11 января 2017, 10:44
          0
          А как указать алиасы для мультполей?
          Пробую вот так:
          {$_modx->runSnippet('!mFilter2', [
          		'parents'		=> 4,
          		'filters'		=> '
          			publishedon:year,
          			publishedon:month
          			',
          		'aliases'		=> '
          			resource|publishedon-year==year,
          			resource|publishedon-month==month
          			'
          	])}
          Но не выходит… Хотелось бы также как в поиске на modx.pro

            Павлик
            01 февраля 2018, 00:09
            0
            А у меня почему-то параметр &aliases вообще не хочет работать. То есть на кривом и глючном сайте у меня всё работало а когда я решил перенести всё на свежую установку псевдонимы ни в какую не хотят работать.
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              9