Цель: по умолчанию - корзина не отображается. при добавлении первого и последующих товаров в корзину - корзина отображается. при удалении из корзины всех товаров - корзина не отображается. Решение: в \catalog\view\theme\default\template\module\cart.tpl добавил PHP: <?php if($this->cart->hasProducts()) {?> <style type="text/css"> #cart {display: block;} </style><?php } else { ?> <style type="text/css"> #cart {display: none;} </style><? }?> !Проблемы: корзина скрывается/отображается только после перезагрузки страницы Неудавшиеся решение проблемы: в \catalog\view\javascript\common.js в функцию addToCart после if (json['success']) { добавил $('#cart').css('display', 'block'); Прошу тыкнуть в то место, где не так. Или показать альтернативный способ.
Да, вроде как всё верно, но попробуйте $('#cart').css('display', 'block'); вставить просто в теле функции success: function(json) {, не помещайте внутрь блока if
Проблему решил переносом Код: <style type="text/css"> #cart {display: none;} </style> в stylesheet.css Предполагаемая причина: более высокий приоритет у стилей, прописанных в шаблоне чем у тех, которые добавляются через js halfhope, спасибо, тоже неплохой способ, но остановлюсь на этом.
Теперь при переходе на другой товар/категорию, корзина не будет показываться, независимо от того есть в ней товар или нет
Вы не правы, #cart {display: block;} в шаблоне имеет приоритет выше чем #cart {display: none;} в стилях. Поэтому если корзина содержит хотя бы 1 товар, она никуда не исчезнет.
Ну по такой логике изначально не должно было быть проблемы, ведь выводя #cart {display: none;} в шаблоне это имело больший приоритет, чем #cart {display: block;} в стилях ....
стили, добавляемые через js, заменяют только стили из stylesheet. стили, прописанные в шаблоне, не изменяются. в этом и была проблема.
Понятно. Хотя как-то странно... и то и другое просто блоки css. Кстати, можно было прямо к диву прикручивать style="....". Элементные стили - приоритетней.
Да там и модуль сам по себе достаточно интересен. Шаги оформления подгружаются постепенно. Надо тестировать влияние на конверсию.