mFilter2 + TicketLatest = не выводит tv-поля

Пытаюсь сделать фильтрацию тикетов, но у меня никак не выводятся нужные фильтры.
Перепробовал уже всё что мог.
Или mFilter2 не работает с Tickets?
У меня всё время выводит "Нечего фильтровать" вместо вывода фильтра.

Вот код вызова:
[[!mFilter2? 
	    &element=`TicketLatest` 
	    &action=`tickets`
	    &tpl=`tpl.blog-item`
	    &includeTVs=`image,category,tags`
	    &limit=`5`
	    &sortby=`publishedon` 
	    &parents=`0` 
	    &where=`{"parent":[[*id]]}` // Пришлось использовать &where, а то &parents не срабатывал
        &filters=`
            tv|category
        `
        &aliases=`
            tv|category==category
        `	    
	    &tplOuter=`tpl.mFilter2.outer.new` 
	    &tplFilter.outer.default=`tpl.mFilter2.filter.outer`
	    &tplFilter.row.default=`tpl.mFilter2.filter.checkbox`
            &tplFilter.outer.tv|category=`tpl.mFilter2.filter.outer.category`
            &tplFilter.row.tv|category=`tpl.mFilter2.filter.radio.category`	    
	    &showLog=`0`
	]]
Вывод &showLog=`1` не буду приводить здесь, потому что там почему-то выводится каша какая-то, которая в <pre >< /pre> вставляет и выводит ещё один или 2 вывода ресурсов с правильно оформленными чанками…

P.S. К тому же ещё вопрос не по теме, но который я решил костылём: в mFilter2 можно вызывать другие pdo-сниппеты, например pdoCrumbs?
У меня не получилось, т.к. в pdoCrumbs подставляется &tpl-ка фильтра и получается каша. Решил костыльно: просто вставил конструкцию крошек и вывел значения через pdoParser
Василий Столейков
24 мая 2015, 08:14
modx.pro
3
1 974
0
Поблагодарить автора Отправить деньги

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

Василий Наумкин
24 мая 2015, 11:34
0
mFilter2 не может работать со всеми сниппетами на свете. Они должны, как минимум, иметь параметр &returnIds=`1`, при включении которого будет возвращен список подходящих id ресурсов.

Ну и я вообще не понимаю, как именно могут фильтроваться результаты сниппетов TicketLatest (смысл которого выводить последние тикеты или комменты, в порядке их появления) или pdoCrumbs (который выводит хлебные крошки в строго определённом порядке).

На мой взгляд, если возникают подобные идеи — на сайте что-то очень не так.
    Василий Столейков
    24 мая 2015, 11:43
    1
    0
    Ну и я вообще не понимаю, как именно могут фильтроваться результаты сниппетов TicketLatest (смысл которого выводить последние тикеты или комменты, в порядке их появления)
    Почему использовал его, т.к. в его чанке легко вызываются плейсхолдеры [[+comments]], [[+date_ago]] и [[+fullname]] автора (или тогда как вывести кол-во комментариев тикета в pdoResoruces?)

    Конечный результат: фильтр должен фильтровать статьи по категории (TV) и тегам (TV), и всё должно быть на Ajax-e, поэтому и был выбран mFilter2.

    Про фильтрацию хлебных крошек я вообще молчу.
    Просто вёрстка сложная, и между фильтром и выводом статей должны выводиться хлебные крошки, поэтому я и вызвал там чанк [[$breadcrumbs]], который выводится на всех других страницах, но пришлось отказаться от такого варианта.
      Василий Наумкин
      24 мая 2015, 12:08
      0
      Ну я не знаю, может начать всё-таки с getTickets, который выводит тикеты и поддерживает все нужные плейсхолдеры и параметры?
        Василий Столейков
        24 мая 2015, 12:13
        0
        Василий, прости мою невнимательность...
        Действительно, я неправильный сниппет использовал (наверное спросонья).
        Все вопросы по выводу фильтра снимаются, спасибо что ткнул пальцем!
          Василий Наумкин
          24 мая 2015, 12:13
          +1
          На здоровье!

          Я вот тоже удивился, откуда такой странный подход к задаче.
            Василий Столейков
            24 мая 2015, 13:36
            1
            0
            Не могу понять, почему не подхватываются шаблоны для отдельных фильтров? Выводятся значения по-умолчанию. Не хотелось бы там что-то изменять — всё равно перезатрутся при обновлении.
            Вызов такой:
            [[!mFilter2? 
                &element=`getTickets` 
                &tpl=`tpl.blog-item`
                &includeTVs=`image,category,tags`
                &limit=`5`
                &sortby=`publishedon`
                &showEmptyFilters=`1` 
                &parents=`[[*id]]` 
                &filters=`
                    tv|category,
                    tv|tags,
                    createdby:fullname
                `
                &aliases=`
                    tv|category==category,
                    tv|tags==tags,
                    resource|createdby==author
                `	    
                &tplOuter=`tpl.mFilter2.outer.new` 
                &tplFilter.outer.tv|category=`tpl.mFilter2.filter.outer.category`
                &tplFilter.row.tv|category=`tpl.mFilter2.filter.option.category`	       
                &suggestionsRadio=`tv|category`
            ]]
            Не подтягиваются эти шаблоны:
            &tplFilter.outer.tv|category=`tpl.mFilter2.filter.outer.category`
                &tplFilter.row.tv|category=`tpl.mFilter2.filter.option.category`
            Может быть я неправильно их указываю?
              Василий Наумкин
              24 мая 2015, 13:54
              0
              Ты используешь aliases, так что и параметры нужно указывать с ними:
              &tplFilter.outer.category=`tpl.mFilter2.filter.outer.category`
              &tplFilter.row.category=`tpl.mFilter2.filter.option.category`

              Не хотелось бы там что-то изменять — всё равно перезатрутся при обновлении.
              Не перезатрутся, если ты сам не отметишь чанки галочкой при обновлении.
                Василий Столейков
                24 мая 2015, 13:58
                0
                Спасибо, не догадался, что aliases в шаблонах нужно указывать… Как всё просто оказывается!

                Не перезатрутся, если ты сам не отметишь чанки галочкой при обновлении.
                Перезатираю почти всегда (вдруг что-то новое вышло), но с начала стараюсь работать только с копиями, указанными в &tpl

                В общем, спасибо ещё раз!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
9