mFilter2 автоматическое название опций товара в фильтре сайта

В miniShop2 в Настройках можно задавать опции товара.
В них мы указываем ключ, название, тип характеристики.
Как вывести в фильтре название на сайте, без добавления в лексикон строчки?
(добавление в лексикон, лишнее действие, хочется выводить сразу по полю «название»)

Чанк вывода опции выглядит так (tpl.mFilter2.filter.outer):

{var $key = $table ~ $delimeter ~ $filter}
<fieldset id="mse2_{$key}">

    <h4 class="filter_title">{('mse2_filter_' ~ $table ~ '_' ~ $filter) | lexicon}</h4>
    {$rows}
</fieldset>
Явно надо выводить вместо этого кода:
{('mse2_filter_' ~ $table ~ '_' ~ $filter) | lexicon}
только какой синтаксис?

Сейчас выводит так:
mse2_filter_msoption_mag-sus
— Android 4
— Windows CE 3
А надо чтобы так:
Операционная система:
— Android 4
— Windows CE 3
Maxim
21 октября 2020, 01:05
modx.pro
1
801
0

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

Андрей Шевяков
21 октября 2020, 09:50
+1
Я использовал для этого дополнение SelectFilters
    Maxim
    22 октября 2020, 23:45
    0
    Спасибо, работает отлично!
      Maxim
      23 октября 2020, 02:09
      0
      Вот такой вопрос еще возник, а как вывести все фильтры которые доступны товару автоматически?
      Чтобы не писать их когда добавляешь новую опцию?
      Вместо вот этого в &filters=
      ms|price:number,
      msoption|tags,
      msoption|auto,
      msoption|mag-sus,
      msoption|mag-int,
      msoption|mag-modul,
      msoption|mag-fun,
      ms|vendor:vendors,
      Чтобы этот список автоматически формировался.
      Пробовал так:

      {set $filters = '!SelectFilters' | snippet: [
          'default' => [
              'ms|price:number', 'ms|vendor:vendors'
          ]
      ]}
      
      
      
      [[!mFilter2?
      				&limit=`30`
      				&parents=`{$id}`
      				&element=`msProducts`
      				&setMeta=`1`
      				&filters=`{$filters}`
      				&suggestionsRadio=`ms|vendor`
      				&class=`msProduct`
      				&sort=`ms|price:asc`
      				&suggestions=`1`
      				&tplOuter=`tpl.mFilter2.outer.2`
      				&tpls=`catalog.tovar.tpl`
      				&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
      				&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
      				&tplFilter.outer.tv|number=`tpl.mFilter2.filter.slider`
      				&tplFilter.row.tv|number=`tpl.mFilter2.filter.number`
      				&showLog=`0`
      				&___ajaxMode=`button`
      				&___filterOptions=`{
      				    "more": ".btn-more",
      				    "more_tpl": "<a href=\"#\" class=\"btn btn-success btn-more\">Загрузить еще<\/a>",
      				    "autoLoad": 1
      			    }`
      			]]
        Maxim
        23 октября 2020, 02:27
        0
        И желательно чтобы сразу понимал что это за поле (указывается при добавлении опции товара, например бегунок или множественный список) и к этому делу подставлялся шаблон сразу слайдера-бегунка например (как у цены)
          Maxim
          23 октября 2020, 02:59
          0
          С выводом разобрался, галочка не стояла у фильтров — выводить фильтр
        Михаил
        21 октября 2020, 09:57
        +3
        <?php
        $query = $modx->query("SELECT * FROM modx_ms2_options WHERE `key`= '".$filter."'");
        $item = $query->fetch(PDO::FETCH_ASSOC);
        
        if($item['caption']) {
            if($item['measure_unit']){
                $output = $item['caption'] . ', '.$item['measure_unit'];
            }else{
                $output = $item['caption'];
            }
            return $output;
        }
        [[!snippet? &filter=`[[+filter]]]]
          Maxim
          22 октября 2020, 23:47
          0
          Спасибо за ответ, не заработало, [[!snippet? &filter=`[[+filter]]]] — тут не хватает видимо кавычки одной, но при исправлении все равно не запускается.
          А так вопрос решил с помощью — SelectFilters, спасибо
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7