Как убрать блок с фильтром mFilter2, если нет объектов для фильтрации

Здравствуйте! Использую для реализации каталога и фильтрации miniShop2 + mFilter2. Не во всех категориях каталога у меня есть товары, только на конечных, но сниппет фильтра привязан к шаблону категории. В результате там, где есть товары фильтр отображается нормально, а там где нет товаров появляются сообщения«Нечего фильтровать» и «Подходящих результатов не найдено.» Можно ли как-то грамотно отключить работу mFilter2 на тех страницах, где товаров нет.

Вот на всякий случай то, как вывожу фильтр:

[[!mFilter2?
&class=`msProduct`
&element=`msProducts`
&parents=`[[*id]]`
&depth=`0`
&tpls=`productTpl`
&tplOuter=`categoryFilterOuterTpl`
&filters=`
msoption|poroda:default,
msoption|coating:default,
msoption|sort:default
`]]

Чанк categoryFilterOuterTpl

<div class="row msearch2" id="mse2_mfilter">
  <div class="span3 col-md-3">
	<div class="filter-block">
      <form action="[[~[[*id]]]]" method="post" id="mse2_filters">
		[[+filters]]
		
		[[+filters:isnot=``:then=`
		<div class="filter-reset">
	      <button type="reset" class="btn btn-default hidden">[[%mse2_reset]]</button>
		  <div class="clearfix"></div>
		</div>
		`]]
	</form>	
	</div>
  </div>
  
  <div class="span9 col-md-9">
	<!-- <h3 class="filter-total">[[%mse2_filter_total]] <span id="mse2_total">[[+total:default=`0`]]</span></h3> -->
	
	<div id="mse2_selected_wrapper">
		<div id="mse2_selected">[[%mse2_selected]]:
			<span></span>
		</div>
	</div>	
	
	<div id="mse2_results" class="row">
	  [[+results]]
	</div>
	<div class="article-content"></div>
	<div class="mse2_pagination text-center">
	  [[!+page.nav]]
	</div>	
  </div>  
</div>

Спасибо!
Константин
27 января 2018, 15:46
modx.pro
1
3 357
0

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

Скаут
28 января 2018, 16:47
0
{if $filters != 'тут ошибка, когда нет фильтров, т.е. сюда надо Нечего фильтровать '}
	{$filters}
	// тут начинка, если фильтры есть: кнопки всякие, элементы верстки блока
{/if}
    Константин
    28 января 2018, 22:40
    0
    Спасибо! Я уже попробовал скрывать все лишнее классом hidden:
    [[+filters:is=`Нечего фильтровать`:then=`hidden`]]
    Чем-то похоже на Ваше решение.
      Илья Александрович
      22 апреля 2020, 13:41
      0
      подскажите почему данное условие может не работать?
      текст Нечего фильтровать и сортировка по цене — появляется в категориях где нет товара

      <div class="msearch2" id="mse2_mfilter">
      
          {if $filters != 'пусто'}
              <div class="row">
                  <div class="col-md-7">
                      <form action="{$_modx->resource.id | url}" method="post" id="mse2_filters" class="form-filter">
                          <div class="blocks">
                              {$filters}
                          </div>
                      </form>
                  </div>
                  <div class="col-md-5">
                      <div class="blocks">
              			<div class="block ml-a">
              				<label for="sort">Сортировать по:</label>
                              <select class="selectpicker pull-right" name="sort" id="mse2_sort">
                                  <option class="sort" data-sort="ms|price" value="asc">возрастанию цены</option>
                                  <option class="sort" data-sort="ms|price" value="desc">убыванию цены</option>
                              </select>
              			</div>
              		</div>
          		</div>
          	</div>
          {/if}
      
          {*
          <div id="mse2_sort">
              {'mse2_sort' | lexicon}
              <a href="#" data-sort="resource|publishedon"
                 data-dir="{if $sort == 'resource|publishedon:desc'}desc{/if}" data-default="desc" class="sort">
                  {'mse2_sort_publishedon' | lexicon} <span></span>
              </a>
          </div>
          *}
          
          <div class="row">
              <div id="mse2_results" class="col-md-12 row tovars pr-0">
                  {$results}
              </div>
          
              <div class="mse2_pagination col-md-12">
                  {'page.nav' | placeholder}
              </div>
          </div>
      </div>
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3