Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Следить
Главная
14:54
10 сен
#
?
написал:

Задача: Сейчас на странице любой категории у нас на сайте показывается фильтр товаров справа. В файле products.tpl мы просто подключили модуль NextWeb filter. Все работает хорошо. Теперь же хотим сделать так, чтобы фильтр появлялся только если покупатель вошел в подкатегорию, а в самой верхней его не показывать.

Вот как у нас подключен фильтр:

  {* подключаем фильтр товаров *}
  {include file = '../../common_parts/NextWeb/filter/main.tpl'

           title = 'Подбор по параметрам'

           show_prices = true
               title_prices = 'Цена'
               price_maxvalue = 50000

           show_brands = true
               title_brands = 'Бренды'
               brand_property = 'Производитель'

           show_variants = true
               title_variants = 'Варианты'
               variant_property = ''

           show_properties = true
               show_counts = true
               short_count = true
               size = 5

           oneclick = true

           link_css = true
           link_engine = true
           link_uislider = true}
15:35
10 сен
#
написал:

Для решения задачи нужно заключить вызов модуля внутрь следующего условия:

  {* если путь текущей категории содержит более 1 ветки *}
  {if $category->path|default:null|count > 1}

      {* здесь вызываем модуль фильтра *}
      ...
      ...

  {/if}

Суть в том, что когда покупатель находится на странице категории, движок передает в шаблон переменную $category со сведениями о просматриваемой категории. В этой переменной есть поле path. Это массив с перечнем узлов полного пути текущей категории, начиная с самого верхнего. Если количество элементов в данном массиве больше 1, значит мы находимся сейчас в какой-то из подкатегорий. Вообще говоря, количество элементов массива равно уровню вложенности категории.

Заметка: модификатор |count использован чтобы подсчитать число элементов массива, соответственно модификатор |default:null - чтобы застраховаться от ошибок, если такой переменной нет в шаблоне (скажем покупатель просматривает не категорию, а бренд).

14:14
22 авг
#
?
написал:

Аналогичная ситуация: мне нужно не показывать не только фильтр но и сами товары в корневых категориях, использовал Ваш код - заключил вывод товаров в файле products.tpl все ок, но если зайти в бренды там тоже нет товаров.

08:42
23 авг
#
написал:

Владимир, можете вернуть назад вывод товаров как было ранее в файле products.tpl, а вместо этого для желаемых категорий просто воспользуйтесь функцией информативная страница. Смотрите по скриншоту.



Данная функция как раз предназначена для подобных случаев - например при заходе на страницу отдельных категорий мы хотели бы, что посетитель видел только описание, и лишь пройдя вглубь категории увидел список товаров.

15:48
23 авг
#
?
написал:

Спасибо за ответ, а есть ли другое решение? , при таком решении не выводятся подкатегории,

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


Обратите внимание! Для противодействия спаму новые посты форума проявляются с задержкой от нескольких минут, пока не пройдут модерацию.