Новости

TagManager2 различная фильтрация

  • Добрый день!

    Прошу прощения за название темы, не знал как обозвать.

    Суть вопроса: Есть пациент https://svetliygrad.ru/doma-iz-brusa-pod-usadku - фильтрация (TagManager2) нужно еще добавить фильтр чекбокасми - где посмотреть/почитать, что бы наладить!?

    Сейчас вывод по числовыми значениями и множественными (выпадающий список).

    Как добавить вывод чебоками!?

    Спасибо!

  • Пока можно задавать только один шаблон для фильтров (либо чекбоксы, либо селекты). Но можно наверно сделать условие по названию фильтра и менять вывод с помощью модификаторов или сниппета "If". Но если у вас значения заранее известны для всех страниц каталога, тогда можно сразу чекбоксы добавить в форму фильтрации.

  • @Andchir все известны! но!

    1. Чекбоксы нужны для всех разделов кроме одного!
    2. Группа чекбоксов будет не одна, а три!

    Еще вопрос, бился с выводом и делал как в документации но не получалось, правильно ли я делал:

    Тип вывода: Флажки (chekbox)
    Возможные значения: Эркер==#jerker#||Балкон==#balkon#||Терраса==#terrasa#||Веранда==#veranda#||Крыльцо==#krylco#

    Правильно ли я делал "возможные значения" !?

    И самый главный вопрос, как дальше действовать, что делать!? Буду очень благодарен за помощь!

    п.с. Можно задонатить на развитие TagManager2 при успешном решение вопроса!

    Спасибо!

  • App

  • @LRN Donate - безвозмездное пожертвование. То что вы предлагаете - платная поддержка и это уже в раздел работа, напишите сумму.

    По вашему вопросу, пожалуйста, установите себе демо сайт , там все работает в нужном вам виде. Сможете снять все вопросы.

  • @slaad мне не нужна поддержка, хорошо назовем это "пожертвование" на развитие проекта (большими суммами не обладаем, но на развите проекта найду)! Если речь зашла о конкретных суммах, то мне кажется Andchir сам должен ее назвать, ему работать над вопросом!

    п.с. я больше чем уверен, что такой фильтр будет нужен не только мне!

    Что касается вопроса, то тут не все так просто, вы не прониклись им и демо-сайт не поможет!

    Все же хотелось бы услышать Andchir'a

    Спасибо!

  • @LRN Не понял, что особенного требуется, к сожалению.
    Три группы чекбоксов сделать можно, насколько знаю. Вот даже на демо-сайте есть
    две группы

    Выпадающий список для одного шаблона и чекбоксы для другого тоже можно, если сделать через if, как Andchir написал.
    Но для вашего сайта лучше все же не селект делать, а чекбоксы, просто сделать их выпадающим списком как тут
    Дело в том, что селекты хороши, когда значений мало и они сильно отличаются, а у вас они близкие в принципе.

  • @slaad вам всё правильно написал. Смотрите демо, читайт едокументацию. Если нужного вам функционала нет, то писать нужно в раздел "Работа".

  • @slaad Где почитать как реализовывается через if ? Если я правильно понял, то речь идет, что бы для одного шаблона поставить один фильтр с селектом, а для другого шаблона другой фильтр с чекбоксами!? Если да, то вариант не подходит, т.к. шаблон один на всех и имено нужно в одном фильтре и чекбоксы и селекты!

    Другой вопрос, если сейчас мне перебивать, т.е. мои селекты переделывать в чекбоксы, то нужно будет пройтись по всем карточкам и переставлять параметр!? К примеру: запись у меня записана просто в строке "6м х 8м", а выводится селектом, сейчас нужно будет переписать этот TV и составить список и проходится по всем карточкам!?

    Сорри за столь объемную писанину, но хочется до конца понимать вопрос, спасибо!

  • @LRN Про фильтры читайте тут
    https://docs.modx.com/revolution/2.x/making-sites-with-modx/customizing-content/input-and-output-filters-(output-modifiers)

    Если у вас один шаблон, можно по id фильтровать.

    Я вам давно предлагаю установить демо сайт и тестировать на нем все что хотите, но вам проще спрашивать)) Чтобы решить второй вопрос, нужно попробовать, вот попробуйте и расскажите тут))

 

Последние комментарии

  • M

    @Andchir
    Да, в TM2 в админке фильтр age включен. Все данные из TV подтянулись, все норм.

    Читать далее
  • В компоненте в админке фильтры есть?

    Читать далее
  • M

    Ломаю голову над запуском Tagmanager2 на простом сайте с выводом обычных item-ов для последующей фильтрации. Делую все по инструкции. Запустил tmCatalog, все отображается:

    [[!tmCatalog? &cache=`1` &elementClass=`modSnippet` &element=`getProducts` &tpl=`filtr_tpl` &sortbyTV=`age` &sortdirTV=`ASC` &parents=`3` &limit=`0` &debug=`0` ]]

    Чанк вывода каждого itema имеет следующий вид:

    <div class="col-xl-4" style="padding-left: 5px; padding-right: 5px; float: left;"> <div class="post-02 post-02__style-02 js-post-effect"> <div class="post-02__media"> <a href="[[~[[+id]]]]"> [[getImageList? &tvname=`slider` &docid=`[[+id]]` &limit=`1` &tpl=`@CODE:<img src="[[+slide]]" alt="[[+alt]]" />` ]] </a></div> <div class="post-02__body"> <h2 class="post-02__title"><a href="[[~[[+id]]]]">[[!pdoField? &id=`[[+id]]` &field=`name`]]</a></h2> <div class="post-02__department">[[!pdoField? &id=`[[+id]]` &field=`seo_tag`]]</div> <div class="post-02__content"> <div class="post-02__description"> [[pdoField:ellipsis=`200`? &id=`[[+id]]` &field=`specification`]] <ul> <li><span class="primary-color">Age</span>[[!pdoField? &id=`[[+id]]` &field=`age`]]</li> <li><span class="primary-color">Dress Size</span>[[!pdoField? &id=`[[+id]]` &field=`dress_size`]]</li> <li><span class="primary-color">Height</span>[[!pdoField? &id=`[[+id]]` &field=`height`]] cm</li> <li><span class="primary-color">Weight</span>[[!pdoField? &id=`[[+id]]` &field=`weight`]] kg</li> </ul> </div> <a class="post-02__link" href="[[~[[+id]]]]">View detail</a> </div> </div> </div> </div>

    filter.js имеет следующий вид. Пока решил фильтровать только числовое значение age:

    config: { filters_cont: '#filters',//Селектор оберточного элемента блоков с фильтрами sortby: 'pagetitle',//Имя поля сортировки по умолчанию sortdir: 'asc',//Направление сортировки по умолчанию numeric: ['age'],//Имена доп. полей с числовыми значениями multitags: [''],//Имена доп. полей с множественными значениями guard_key: '#',//Разделитель для множественных значений products_cont: '#products',//Селектор контейнера с выводом товаров filter_slider: 'div.range-slider',//Селектор слайдеров (ползунок для числовых значений) filter_slider_cont: 'div.filter_slider',//Селектор контейнера со слайдером pages_cont1: '#pages',//Селектор контейнера с постраничной навигацией pages_cont2: '#pages2',//Селектор второго контейнера с постраничной навигацией. Если нет, оставить пустым. active_page_selector: '.current',//селектор номера текущей страницы внутри контейнера (pages_cont) filters_type: 'default',//Тип фильтрации. Возможные значения: // default (показ числа товаров по каждому фильтру и блокирование пустых вариантов), // only_block (только блокирование пустых париантов), // none (не показывать цифры и не блокировать) filter_delay: 700,//Задержка до отправления запроса на сервер (сбрасывается после каждой отметки фильтра) price_field: 'price',//Название поля или TV цены товара multi_currency: true,//Мультивалютность включить / выключить (true/false) base_url: '/', ajax_url: 'assets/components/tag_manager2/connector_fe.php', ajax_loader: 'assets/components/tag_manager2/img/ajax-loader2.gif' },

    Все скрипты подключи вручную, все отображается внизу страницы, проверял.
    Сам tmFilters не отображается хоть убей. Вывожу:

    <div id="filters"> [[tmFilters? &filterNumericTpl=`tm2_filterNumericTpl` &filterNumericOuterTpl=`tm2_filterOuterTpl` &jsScript=`0` &jsMap=`1` &filtersType=`filters` ]] <form action="[[~[[*id]]]]" method="get"> <input type="hidden" name="page_id" value="[[*id]]" disabled="disabled" /> [[+filters]] <button id="clear" class="btn btn-danger btn-sm" type="button" onclick="tmFilters.resetFilters(); return false;">Сбросить</button> </form> </div>

    При выводе на странице выводится только кнопка. Фильтров как и не существует. Я понимаю, если бы кривенько вывелись чанки с фильтром и он не фильтровал, здесь же сам фильтр никак не хочет выводиться в бэкенд. Кто с таким сталкивался? Куда копать?

    Читать далее
  • @Andchir Спасибо!!!
    Все перепробовал кроме [[+note]]
    В письме со статусом отправлен, чтобы трек-номер отправлять покупателю. Все работает. Еще раз спасибо.

    Читать далее