mFilter2 автоматическое название опций товара в фильтре сайта
В miniShop2 в Настройках можно задавать опции товара.
В них мы указываем ключ, название, тип характеристики.
Как вывести в фильтре название на сайте, без добавления в лексикон строчки?
(добавление в лексикон, лишнее действие, хочется выводить сразу по полю «название»)
Чанк вывода опции выглядит так (tpl.mFilter2.filter.outer):
Сейчас выводит так:
В них мы указываем ключ, название, тип характеристики.
Как вывести в фильтре название на сайте, без добавления в лексикон строчки?
(добавление в лексикон, лишнее действие, хочется выводить сразу по полю «название»)
Чанк вывода опции выглядит так (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
Комментарии: 7
Я использовал для этого дополнение SelectFilters
Спасибо, работает отлично!
Вот такой вопрос еще возник, а как вывести все фильтры которые доступны товару автоматически?
Чтобы не писать их когда добавляешь новую опцию?
Вместо вот этого в &filters=
ms|price:number,
msoption|tags,
msoption|auto,
msoption|mag-sus,
msoption|mag-int,
msoption|mag-modul,
msoption|mag-fun,
ms|vendor:vendors,
Чтобы этот список автоматически формировался.
Пробовал так:
Чтобы не писать их когда добавляешь новую опцию?
Вместо вот этого в &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
}`
]]
И желательно чтобы сразу понимал что это за поле (указывается при добавлении опции товара, например бегунок или множественный список) и к этому делу подставлялся шаблон сразу слайдера-бегунка например (как у цены)
С выводом разобрался, галочка не стояла у фильтров — выводить фильтр
<?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]]]]
Спасибо за ответ, не заработало, [[!snippet? &filter=`[[+filter]]]] — тут не хватает видимо кавычки одной, но при исправлении все равно не запускается.
А так вопрос решил с помощью — SelectFilters, спасибо
А так вопрос решил с помощью — SelectFilters, спасибо
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.