Не зарегистрирован
Вход
Забыли пароль?
Регистрация
Подписаться
Сэкономьте время — перед вопросом на форуме узнайте, как найти ответ быстрее
По техническим проблемам необходимо обращаться в Консультационный центр

Поиск по форуму: 

Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.

Форум  ->   Интернет Магазин  ->  Доп. колонка в макете при определенном условии

Вопросы по настройке магазина, каталога.

Добавлено: 19.03.20 15:47:02 #1

Партнер


Регистрация: 11.07.16
Сообщений: 42


Обратиться по имени

Добрый день.

Встала задача, сделать появление доп. левой колонки, если в каталоге присутствует фильтр товаров, для его вывода.

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

Пытался сделать проверку в макете страниц, не работает, или я не правильно делаю

<!DOCTYPE HTML>
##init##
<body>
<div id="lay_f2">##lay_f2_body##</div>
##if(filter)##
<div id=lay_f3" class="col-lg-3 hidden-xs">##lay_f3_body##</div>
##endif##
##if(filter)##
<div id="lay_body" class="col-lg-9">
##else##
<div id="lay_body">
##endif##
##status_messages##
##lay_body_body##
</div>
<div id=lay_f7>##lay_f7_body##</div>
</body>
##end##



Добавлено: 22.04.20 13:37:34 #2

Партнер


Регистрация: 22.02.09
Сообщений: 472


Обратиться по имени

Наверное уже не актуально, но напишу, может пригодится.

В макете страниц не будет переменной filter.
Нужно создать глобальную переменную ранее, а затем использовать ее в макете.
Например, если опираться на переменную filter, то можно в сетах body_items и body_search создавать такую глобальную переменную:
 ##setglobalvar @g_has_filter = (filter) ? 1 : ''##
и переменную g_has_filter использовать уже в макете.

НО здесь есть такой нюанс - не стоит полагаться на переменную filter.
Скорее всего вы подразумеваете, что есть категории, для которых в наборе свойств нет свойств, отображаемых в фильтре. В этом случае фильтр будет (там будут скрытые поля для сортировки и др.), но выводимых на страницу полей не будет. Т.е. фильтра для пользователей на странице не будет, но переменная filter будет не пустая и вся вышеописанная схема не будет работать корректно.

Как стоит сделать:

1. Формировать глобальную переменную в шаблоне, который отвечает у вас за отображение фильтра (это может быть шаблон eshop_filter_form, либо другой, например, шаблон для спецблока). Я использую такой прием - в сете field_submit добавляю:
##setglobalvar @g_has_filter = 1##
Это сет кнопки применения фильтра, которая выводится только когда есть какие-то поля в фильтре, поэтому обращение к этому сету и, соответственно, формирование глобальной переменной происходит только при наличии таких полей, что нам и нужно.

2. Если фильтр расположен в блоке, который не будет выводится на каких-то категориях, то нужно, чтобы он обязательно выводился в основном блоке странице, в ранее упомянутых сетах body_items и body_search (изначально он там всегда есть, а если показывать на странице в этом месте его не нужно, то используйте визуально скрытие - оберните в блок со стилем display: none). В противном случае в категориях без фильтра могут перестать работать сортировка и пагинация.



Добавлено: 29.04.20 22:25:20 #3

Партнер


Регистрация: 11.07.16
Сообщений: 42


Обратиться по имени

Evgeney S.:
Наверное уже не актуально, но напишу, может пригодится.

ОЧЕНЬ АКТУАЛЬНО, пасибки огромное! вот такие бы люди в поддержке амиро работали





Создать новую тему

Всего тем: 6659
Всего сообщений: 27847
Всего зарегистрированных пользователей: 53143
Последний зарегистрированный пользователь: maksimkrutoy