[Помогите] Как убрать встроенный в шаблон модуль

Тема в разделе "OpenCart", создана пользователем skiv14, 24 янв 2016.

  1. skiv14

    skiv14

    Регистрация:
    9 июн 2015
    Сообщения:
    411
    Симпатии:
    159
    При добавлении товара в корзину вылезает попап с уведомлением, что товар добавлен.
    Как его нафиг отменить ?

    OcStore 1.5.5.2
    Манимейкер

    Хочу сделать человеческий полёт в корзину, но этот попап не позволяет это сделать.
    В управлении шаблоном таких настроек нет.

    Я так понял, реализовано с помощью Colorbox.
    Пробовал убирать его - отваливается слайдшоу картинок и вообще добавление в корзину не работает.

    Потом я смотрел moneymaker.js в /catalog/view/javascript/, нашёл там
    Код:
    function addToCart(product_id, quantity) {
        quantity = typeof(quantity) != 'undefined' ? quantity : 1;
    
        $.ajax({
            url: 'index.php?route=checkout/cart/add',
            type: 'post',
            data: 'product_id=' + product_id + '&quantity=' + quantity,
            dataType: 'json',
            success: function(json) {
                $('.success, .warning, .attention, .information, .error').remove();
    
                if (json['redirect']) {
                    location = json['redirect'];
                }
                if (json['success']) {
                    $("#image-appendix").remove()
                    $.colorbox({
                        width: '550px',
                        close: "<button class='btn btn-default' type='button'><i class='fa fa-fw fa-times'></i></button>",
                        onComplete: function() { if(navigator.appVersion.indexOf("MSIE 8.")!=-1) {$("html, body").animate({scrollTop:0}, 'slow');}; },
                        html: "<h4 class='col-xs-12 text-center'>" + json['success'] + "</h4><p class='text-center'><a href='" + link_checkout + "' class='btn btn-lg btn-primary'><i class='fa fa-fw fa-share'></i> <span>" + button_checkout + "</span></a></p><p class='text-center'><a onclick='$.colorbox.close()' class='btn btn-default'>" + button_shopping + "</a></p>", title:"" });
                    $('#cart').load('index.php?route=module/cart' + ' #cart > *');
                }
            }
        });
    }
    Но что тут надо убрать - не догоняю.

    В общем, я сдаюсь. 2 часа с этим куском кода без понимания кода прошли впустую.

    Мне надо только убрать попап.

    Может вообще не тут надо смотреть ?
    Какие есть мысли ?
     
    Последнее редактирование: 25 янв 2016
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.037
    Симпатии:
    774
    Ох. Всё ведь очевидно.
    Код:
    if (json['success']) {
                    $("#image-appendix").remove()
                    $.colorbox({
                        width: '550px',
                        close: "<button class='btn btn-default' type='button'><i class='fa fa-fw fa-times'></i></button>",
                        onComplete: function() { if(navigator.appVersion.indexOf("MSIE 8.")!=-1) {$("html, body").animate({scrollTop:0}, 'slow');}; },
                        html: "<h4 class='col-xs-12 text-center'>" + json['success'] + "</h4><p class='text-center'><a href='" + link_checkout + "' class='btn btn-lg btn-primary'><i class='fa fa-fw fa-share'></i> <span>" + button_checkout + "</span></a></p><p class='text-center'><a onclick='$.colorbox.close()' class='btn btn-default'>" + button_shopping + "</a></p>", title:"" });
                    $('#cart').load('index.php?route=module/cart' + ' #cart > *');
                }
    Вот этот кусок кода обрабатывает успешный ответ от сервера. И здесь же можно увидеть вызов colorbox для этого попапа, именно его и нужно убирать.
     
  3. skiv14

    skiv14

    Регистрация:
    9 июн 2015
    Сообщения:
    411
    Симпатии:
    159
    Dotrox, нет, видимо, не в этом файле вызов идёт :(
    Если я убираю этот кусок - всё работает.
    Я даже всю function addToCart убираю - тоже всё работает.

    Ранее я пытался убрать части кода в onComplete: function() и тогда попап оставался, но переставали работать некоторые функции всплывающей корзины слева сверху. Но попап оставался.
    Вот я и решил, что я не то удаляю.
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.037
    Симпатии:
    774
    Не знаю, как в Манимейкере, но вообще обычно есть два обработчика для кнопки добавления в корзину: на странице товара код в теле самой страницы внизу, для всех остальных страниц (и товаров на странице товара, которые выводятся модулями) код в common.js.
    Как я понимаю, этот файл является заменой для common.js, то есть этот код работает для всех кнопок, кроме кнопки основного товара на странице товара.
     
  5. skiv14

    skiv14

    Регистрация:
    9 июн 2015
    Сообщения:
    411
    Симпатии:
    159
    Нашёёёёёл !!!!!!!!

    Вызывается из файла product.tpl
    в /catalog/view/theme/moneymaker/template/product/

    Вот похожий кусок кода оттуда

    Код:
    <script type="text/javascript"><!--
    $('#button-cart').bind('click', function() {
        $.ajax({
            url: 'index.php?route=checkout/cart/add',
            type: 'post',
        data: $('#product-controls input[type=\'text\'], #product-controls input[type=\'number\'], #product-controls input[type=\'date\'], #product-controls input[type=\'datetime-local\'], #product-controls input[type=\'time\'], #product-controls input[type=\'hidden\'], #product-controls input[type=\'radio\']:checked, #product-controls input[type=\'checkbox\']:checked, #product-controls select, #product-controls textarea'),
        dataType: 'json',
            success: function(json) {
                $('.success, .warning, .attention, .information, .error').remove();
    
                if (json['error']) {
                    if (json['error']['option']) {
              $.colorbox.close();
              <?php if ($this->config->get('mmr_product_gallery_type')=='fancybox') { ?>$.fancybox.close();<?php } ?>
              $('.options .collapse').show();
              $('.options .options-expand').hide();
              for (i in json['error']['option']) {
                            $('#input-option' + i).after('<span class="error">' + json['error']['option'][i] + '</span>');
                        }
                    }
                }
          if (json['success']) {
            $.colorbox({
              width: '550px',
              close: "<button class='btn btn-default' type='button'><i class='fa fa-fw fa-times'></i></button>",
              onComplete: function() { if(navigator.appVersion.indexOf("MSIE 8.")!=-1) {$("html, body").animate({scrollTop:0}, 'slow');}; },
              html: "<h4 class='col-xs-12 text-center'>" + json['success'] + "</h4><p class='text-center'><a href='<?php echo $this->url->link('checkout/checkout', '', 'SSL'); ?>' class='btn btn-lg btn-primary'><i class='fa fa-fw fa-share'></i> <span><?php echo $this->language->get('button_checkout'); ?></span></a></p><p class='text-center'><a onclick='$.colorbox.close()' class='btn btn-default'><?php echo $this->language->get('button_shopping'); ?></a></p>", title:"" });
            $('#cart').load('index.php?route=module/cart' + ' #cart > *');
          }
    
            }
        });
    });
    //--></script>
    Вот это отвечает за попап
    Код:
    $.colorbox({
              width: '550px',
              close: "<button class='btn btn-default' type='button'><i class='fa fa-fw fa-times'></i></button>",
              onComplete: function() { if(navigator.appVersion.indexOf("MSIE 8.")!=-1) {$("html, body").animate({scrollTop:0}, 'slow');}; },
              html: "<h4 class='col-xs-12 text-center'>" + json['success'] + "</h4><p class='text-center'><a href='<?php echo $this->url->link('checkout/checkout', '', 'SSL'); ?>' class='btn btn-lg btn-primary'><i class='fa fa-fw fa-share'></i> <span><?php echo $this->language->get('button_checkout'); ?></span></a></p><p class='text-center'><a onclick='$.colorbox.close()' class='btn btn-default'><?php echo $this->language->get('button_shopping'); ?></a></p>", title:"" });
    Вот это за добавление в окно корзины сверху справа
    Код:
    $('#cart').load('index.php?route=module/cart' + ' #cart > *');
    Отключаем код вызова попапа и его больше нет.
    Аналогичным образом надо найти и удалить вызов попапа со страницы категорий и т.д. где он не нужен.


    Теперь вторая часть балета.
    Модуль летающей корзины так и не пашет...

    В общем, буду пробовать дальше копать. Чего накопаю - выложу. Тему предлагаю не удалять и не закрывать, по крайней мере, одно решение в ней есть
     
    Последнее редактирование: 25 янв 2016
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.037
    Симпатии:
    774
    Ну, вот код из moneymaker.js и должен за это отвечать. Либо таки есть common.js и обработчик работает оттуда.
    И нужно не забывать чистить кеш браузера при редактировании js кода в отдельных файлах.
     
  7. skiv14

    skiv14

    Регистрация:
    9 июн 2015
    Сообщения:
    411
    Симпатии:
    159
    А там есть и moneymaker.js и common.js
    В common.js попроще написано.

    Я пробовал удалять и из common.js тоже, не даёт эффекта. Из продукт тпл даёт.

    Сейчас сижу без попапа и полёт в корзину пока не получается заставить работать. Думаю, чё дальше делать )))
    При заказе сейчас вообще никакого уведомления.