Показать товар только после выбора категории!?

Добрый день!

В фильтре есть вызов (выбор категории):

&filters=`resource|parent:parents`

&tplFilter.outer.resource|parent=`tpl.mFilter2.filter.select`
&tplFilter.row.resource|parent=`tpl.mFilter2.filter.option`
&suggestionsRadio=`resource|parent`

Как можно реализовать так, что бы товары не показывались, пока пользователь не выберет хотя бы одну категорию!?

Спасибо!
Роман
05 сентября 2017, 18:25
modx.pro
1
1 811
0

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

Александр
06 сентября 2017, 10:14
0
Фильтр — это get запросы. Во внешнем чанке пропишите логический оператор на проверку get запроса категории
    Роман
    06 сентября 2017, 10:17
    0
    Можно более развернутый ответ (может с каким то примером), не совсем понял что нужно сделать!
      Александр
      06 сентября 2017, 10:27
      +1
      В tplOuter:
      {if $.get.parent}
      	Тут то, что у Вас сейчас там выводится в tplOuter
      {else}
      	Выберите категорию в фильтре
      {/if}
        Роман
        06 сентября 2017, 10:48
        +1
        Имеешь в виду результаты вывода завернуть?
        {if $.get.parent}
        	<div id="mse2_results">
        		[[+results]]
        	</div>
        {else}
        	Выберите категорию в фильтре
        {/if}
          Александр
          06 сентября 2017, 11:01
          0
          да
            Роман
            10 сентября 2017, 16:54
            0
            Подскажи пожалуйста, я должен написать снипет, и в нем указать/перечислить мои id категорий, если ссылки получается у меня в виде: ?resource|parent=4 если да, то как в {if $.get.parent} указать свой снипет, не сильно разобрался еще с Fenom

            Спасибо!
                Александр
                10 сентября 2017, 17:04
                0
                {if $.get.parent}
                Этот кусок проверяет, есть ли в get запросе массив с parent. (указаны ли категории).
                Если все есть, то:
                <div id="mse2_results">
                		[[+results]]
                	</div>
                Если нет:
                Выберите категорию в фильтре
                  Роман
                  10 сентября 2017, 17:07
                  0
                  Это я понял, я не пойму как мне указать тут {if $.get.parent} свои категории!?
                    Александр
                    10 сентября 2017, 17:08
                    0
                    Свои категории для чего?
                    Объясни еще раз задачу, не могу понять
                      Роман
                      10 сентября 2017, 17:12
                      0
                      Задача есть фильтр (mFilter2) — задача, пока пользователь не выбрал не одной категории в фильтре, то не показывать не одного ресурса!

                      т.е. по умолчанию фильтр показывает все товары со всех категорий, нужно все скрыть, а показать только после его выбрал категорию!
                        Александр
                        10 сентября 2017, 17:25
                        0
                        А причем тут свои категории?
                        Роман
                        10 сентября 2017, 17:32
                        0
                        Потому что в фильтре есть фильтр по категориям:
                        &filters=`resource|parent:parents`
                        Выбрал категорию, показали товары
                Александр
                10 сентября 2017, 17:07
                0
                Если у тебя get вида:
                resource|parent=4
                То попробуй:
                {if $.get['resource|parent']}
                  Роман
                  10 сентября 2017, 17:16
                  0
                  {if $.get['resource|parent']}

                  так показывает все и сразу
                    Александр
                    10 сентября 2017, 17:46
                    0
                    Что значит все и сразу? Вы тестируемую страницу можете скинуть?
                      Роман
                      10 сентября 2017, 17:54
                      0
                      _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>
                        Александр
                        10 сентября 2017, 18:12
                        +1
                        <div id="mse2_results">
                                  {if $.get['resource|parent']}
                                	[[+results]]
                                    {else}
                                    	Выберите категорию в фильтре
                                    {/if}
                        </div>
                        Роман
                        10 сентября 2017, 18:18
                        0
                        Так заработало, то что нужно!

                        <div id="mse2_results">
                                  {if $.get['resource|parent']}
                                	[[+results]]
                                    {else}
                                    	Выберите категорию в фильтре
                                    {/if}
                        </div>
                        Спасибо!
                        Александр
                        10 сентября 2017, 18:20
                        0
                        только если кликнуть «сбросить», то все-равно все выводятся
                        Роман
                        10 сентября 2017, 18:21
                        0
                        Да, действительно, печалька ((( Тут наверное только Василий поможет, или и то не вариант?
                        Александр
                        10 сентября 2017, 18:22
                        0
                        У Василия своих дел хватает) я в этом более чем уверен =)
                        Роман
                        10 сентября 2017, 18:24
                        0
                        тут я не спорю, я к тому, что он сможет подсказать, что можно сделать
                        Александр
                        10 сентября 2017, 18:14
                        0
                        &parents=`{$.get['resource|parent']?'3,4,5,6,7,8,9,10':'99999999'}`
                        Роман
                        10 сентября 2017, 18:17
                        0
                        Так фильтр пропадает от слова «совсем» — вариант не подходит
                        Александр
                        10 сентября 2017, 18:18
                        0
                        Роман
                        10 сентября 2017, 18:20
                        0
                        Ага, этот. Василий говорил, про зависимость — тут она сыграла важную роль
    Максим Кузнецов
    10 сентября 2017, 18:46
    0
    Предложенные выше способы (обернуть плейсхолдер результатов в условие) не будут нормально работать динамически, до перезагрузки страницы со сформированным гет-параметром.

    Можете попробовать сделать сниппет-обертку для вызываемого в mFilter2 сниппета, который будет проверять наличие гет-параметров. В случае нахождения гет-параметра — передавать все scriptProperties в вызываемый сниппет, в противном случае возвращать пустоту.

    Другой способ — расширить родной класс фильтрации, сформировав в нем нужные условия.
      Роман
      10 сентября 2017, 19:07
      0
      Я такое не осилю )))
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      29