AJAX загрузка $msProduct.content в модальном окне
Приветствую! Подскажите варианты решения задачи или в каком направлении искать. Буду признателен за любую помощь.
Каким образом можно сделать быстрый просмотр карточки товара miniShop2 в модальном окне с AJAX загрузкой, надо выводить чанк $msProduct.content по клику на кнопку. Модуль QuickView не подходит, из-за необходимости использовать на десятках сайтов с однотипной структурой без корзины.
Пробовал сделать на Bootstrap и fancyBox, метод рабочий, если бы не [[!msGallery]], такой подход некорректно загружает галерею и выводит только изображения без разметки.
Для ясности, пример реализации на Bootstrap:
Есть такой момент, когда $msProduct.content загружается внутри <body></body>, галерея отображается корректно. Пробовал разные костыли, в т.ч. подставлять <body></body> непосредственно в модальное окно.
//Кнопка вызова
//Модальное окно
//JS
Каким образом можно сделать быстрый просмотр карточки товара miniShop2 в модальном окне с AJAX загрузкой, надо выводить чанк $msProduct.content по клику на кнопку. Модуль QuickView не подходит, из-за необходимости использовать на десятках сайтов с однотипной структурой без корзины.
Пробовал сделать на Bootstrap и fancyBox, метод рабочий, если бы не [[!msGallery]], такой подход некорректно загружает галерею и выводит только изображения без разметки.
Для ясности, пример реализации на Bootstrap:
Есть такой момент, когда $msProduct.content загружается внутри <body></body>, галерея отображается корректно. Пробовал разные костыли, в т.ч. подставлять <body></body> непосредственно в модальное окно.
//Кнопка вызова
<button data-target="#product" data-toggle="modal" data-load-remote="/page.html" data-remote-target=".modal-body">Просмотр</button>
//Модальное окно
<div id="product" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog modal-lg" 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>
</div>
<div class="modal-body">
//сюда должен подгружаться контент
</div>
</div>
</div>
</div>
//JS
<script type="text/javascript">
jQuery(function ($) {
$('[data-load-remote]').on('click',function(e) {
e.preventDefault();
var $this = $(this);
var remote = $this.data('load-remote');
if(remote) {
$($this.data('remote-target')).load(remote + " #content");
}
});
Комментарии: 10
Решение удобное для 1-3 сайтов. Когда их пара десятков, покупать для каждого, очевидно, не вариант.
Простейшее решение сделал на Bootstrap, исправить загрузку галереи в этом случае не получилось, да, можно убрать все лишнее со страницы товара и грузить ее полностью, в этом случае если галерея находится внутри тега <body></body>, выводится корректно. Страницы товара используются как одностраничные сайты. Костыльное решение, создать дубли каждого товара с разными шаблонами, либо заменить галерею.
Простейшее решение сделал на Bootstrap, исправить загрузку галереи в этом случае не получилось, да, можно убрать все лишнее со страницы товара и грузить ее полностью, в этом случае если галерея находится внутри тега <body></body>, выводится корректно. Страницы товара используются как одностраничные сайты. Костыльное решение, создать дубли каждого товара с разными шаблонами, либо заменить галерею.
Напишите в скайп, контакты в профиле.
Для работы ms2gallery (по умолчанию там используется fotorama) достаточно еще раз инициализировать галерею, скорее всего у нее есть такой метод.
Недавно поставил у себя, вот это работает без javascript, посмотрите можт быть подойдет.
Не совсем то, со своей функцией вполне неплохо справляются модальные окна Bootstrap. Дело не в них, а в правильном выводе чанков и сниппетов как понимаю.
Просто переинициализируйте фотораму как скрипт, если она у вас стоит.
уже сделали, вопрос решен.
Решение можете выложить?
Напишите в скайп, отправлю файлом, контакты в профиле.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.