Показать товар только после выбора категории!?
Добрый день!
В фильтре есть вызов (выбор категории):
Как можно реализовать так, что бы товары не показывались, пока пользователь не выберет хотя бы одну категорию!?
Спасибо!
В фильтре есть вызов (выбор категории):
&filters=`resource|parent:parents`
&tplFilter.outer.resource|parent=`tpl.mFilter2.filter.select`
&tplFilter.row.resource|parent=`tpl.mFilter2.filter.option`
&suggestionsRadio=`resource|parent`
Как можно реализовать так, что бы товары не показывались, пока пользователь не выберет хотя бы одну категорию!?
Спасибо!
Комментарии: 29
Фильтр — это get запросы. Во внешнем чанке пропишите логический оператор на проверку get запроса категории
Можно более развернутый ответ (может с каким то примером), не совсем понял что нужно сделать!
В tplOuter:
{if $.get.parent}
Тут то, что у Вас сейчас там выводится в tplOuter
{else}
Выберите категорию в фильтре
{/if}
Имеешь в виду результаты вывода завернуть?
{if $.get.parent}
<div id="mse2_results">
[[+results]]
</div>
{else}
Выберите категорию в фильтре
{/if}
да
Подскажи пожалуйста, я должен написать снипет, и в нем указать/перечислить мои id категорий, если ссылки получается у меня в виде: ?resource|parent=4 если да, то как в {if $.get.parent} указать свой снипет, не сильно разобрался еще с Fenom
Спасибо!
Спасибо!
{if $.get.parent}
Этот кусок проверяет, есть ли в get запросе массив с parent. (указаны ли категории).Если все есть, то:
<div id="mse2_results">
[[+results]]
</div>
Если нет:Выберите категорию в фильтре
Это я понял, я не пойму как мне указать тут {if $.get.parent} свои категории!?
Свои категории для чего?
Объясни еще раз задачу, не могу понять
Объясни еще раз задачу, не могу понять
Задача есть фильтр (mFilter2) — задача, пока пользователь не выбрал не одной категории в фильтре, то не показывать не одного ресурса!
т.е. по умолчанию фильтр показывает все товары со всех категорий, нужно все скрыть, а показать только после его выбрал категорию!
т.е. по умолчанию фильтр показывает все товары со всех категорий, нужно все скрыть, а показать только после его выбрал категорию!
А причем тут свои категории?
Потому что в фильтре есть фильтр по категориям:
&filters=`resource|parent:parents`
Выбрал категорию, показали товары
Если у тебя get вида:
resource|parent=4То попробуй:
{if $.get['resource|parent']}
{if $.get['resource|parent']}
так показывает все и сразу
Что значит все и сразу? Вы тестируемую страницу можете скинуть?
_https://svetliygrad.ru/res
Вызов:
Вызов:
[[!mFilter2?
&parents=`3,4,5,6,7,8,9,10`
&limit=`12`
&element=`pdoResources`
&paginator=`pdoPage`
&pageLimit=`4`
&includeTVs=`
tplH1,
tplImage,
price,
buildingverall,
buildingarea,
buildingsize,
tplProjectAction
`
&tvPrefix=`tv.`
&tplOuter=`tplMSFilterOuterCat`
&tpl=`tplMSearchRowCat`
&fields=`parent:5`
&sort=`
resource|publishedon:desc
`
&filters=`
resource|parent:parents
`
&tplFilter.outer.resource|parent=`tpl.mFilter2.filter.select`
&tplFilter.row.resource|parent=`tpl.mFilter2.filter.option`
&suggestionsRadio=`resource|parent`
]]
Вызов tplMSFilterOuterCat:<div class="row">
<div class="categoty-project-margin"></div>
</div>
<div class="row">
<div class="col-md-12">
<h2>Выберите параметры дома, который нужен Вам</h2>
</div>
</div>
<div id="mse2_mfilter" class="row">
<div class="col-md-12">
<div class="mfiltercat">
<form action="[[~[[*id]]]]" method="post" id="mse2_filters">
[[+filters]]
[[+filters:isnot=``:then=`
<button type="submit" class="btn btn-success pull-right button-submit hidden">[[%mse2_submit]]</button>
<button type="reset" class="btn btn-default hidden button-reset">[[%mse2_reset]]</button>
<div class="clearfix"></div>
`]]
</form>
</div>
</div>
<div class="col-md-12">
<p>[[%mse2_filter_total]] <span id="mse2_total">[[+total:default=`0`]]</span></p>
<p>Мы всегда ответим на все Ваши вопросы по телефону
{1 | resource: 'tplPhone'} или перезвоним Вам</p>
</div>
<div class="col-md-12">
<div class="row">
{if $.get['resource|parent']}
<div id="mse2_results">
[[+results]]
</div>
{else}
Выберите категорию в фильтре
{/if}
</div>
</div>
[[+page.nav:notempty=`
<div class="col-md-12">
<div id="mse2_pagination" class="categoty-project-pagination">
<ul class="pagination">
<li>[[!+page.nav]]</li>
</ul>
</div>
</div>
`]]
</div>
<div id="mse2_results">
{if $.get['resource|parent']}
[[+results]]
{else}
Выберите категорию в фильтре
{/if}
</div>
Так заработало, то что нужно!
<div id="mse2_results">
{if $.get['resource|parent']}
[[+results]]
{else}
Выберите категорию в фильтре
{/if}
</div>
Спасибо!
только если кликнуть «сбросить», то все-равно все выводятся
Да, действительно, печалька ((( Тут наверное только Василий поможет, или и то не вариант?
У Василия своих дел хватает) я в этом более чем уверен =)
тут я не спорю, я к тому, что он сможет подсказать, что можно сделать
&parents=`{$.get['resource|parent']?'3,4,5,6,7,8,9,10':'99999999'}`
Так фильтр пропадает от слова «совсем» — вариант не подходит
Ага, этот. Василий говорил, про зависимость — тут она сыграла важную роль
Предложенные выше способы (обернуть плейсхолдер результатов в условие) не будут нормально работать динамически, до перезагрузки страницы со сформированным гет-параметром.
Можете попробовать сделать сниппет-обертку для вызываемого в mFilter2 сниппета, который будет проверять наличие гет-параметров. В случае нахождения гет-параметра — передавать все scriptProperties в вызываемый сниппет, в противном случае возвращать пустоту.
Другой способ — расширить родной класс фильтрации, сформировав в нем нужные условия.
Можете попробовать сделать сниппет-обертку для вызываемого в mFilter2 сниппета, который будет проверять наличие гет-параметров. В случае нахождения гет-параметра — передавать все scriptProperties в вызываемый сниппет, в противном случае возвращать пустоту.
Другой способ — расширить родной класс фильтрации, сформировав в нем нужные условия.
Я такое не осилю )))
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.