Сегодня небольшой урок о том, как в MODX Revo реализовать всплывающее окно после нажатия на кнопку купить (в корзину) в минишоп 2.
Модальное окно возьмем к примеру из 3 бутстрапа getbootstrap.com/docs/3.3/javascript/#modals , пишу сразу готовый код
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title" id="myModalLabel">Товар [[*pagetitle]] добавлен в корзину</h4> </div> <div class="modal-body"> <button type="button" class="btn btn-primary" onclick="document.location = '/cart'">Оформить заказ</button> <button type="button" class="btn btn-success" data-dismiss="modal">Продолжить покупки</button> </div> </div> </div> </div>
где /cart — url корзины
Далее вешаем функцию
miniShop2.Callbacks.Cart.add.response.success = function()
Вот код под модальное окно
<script> miniShop2.Callbacks.Cart.add.response.success = function() { // показываем модальное окно $( "#myModal" ).show(); // закрываем, в случае, если "продолжить покупки" $('.close').click(function(){ $('#myModal').hide(); }); // закрываем, в случае клика не по окну" $(document).click(function(event) { if ($(event.target).closest(".modal-dialog").length) return; $("#myModal").hide("slow"); event.stopPropagation(); }); } </script>
Все это добро просто подключаем (добавляем) в шаблон карточки товара. Все.
Код уже не работает
Должен работать, но пока нет проектов где его можно проверить (без правок серьезных, модальных окон и т.д.)