Opencart 2.x - Количество Товаров Над Иконкой Корзины

Тема в разделе "Шаблоны, дизайн и оформление магазина", создана пользователем admin, 10 июл 2017.

  1. TopicStarter Overlay
    Offline

    admin Команда форума Администратор

    Сообщения:
    2.729
    Симпатии:
    129.642
    Репутация:
    215
    img1.jpg img2.jpg
    берем catalog\controller\common\cart.php
    эту строку
    Код:
    $data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));
    меняем на эту
    Код:
    $data['count'] = $this->cart->countProducts();
    берем catalog\view\theme\default\template\common\cart.tpl
    эту строку
    Код:
    <button type="button" data-toggle="dropdown" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-inverse btn-block btn-lg dropdown-toggle"><i class="fa fa-shopping-cart"></i> <span id="cart-total"><?php echo $text_items; ?></span></button>
    меняем на эту
    Код:
    <button type="button" data-toggle="dropdown" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-inverse btn-block btn-lg dropdown-toggle"><img src="catalog/view/theme/default/image/cart.png"><?php if ($count > 0) { ?><span class="count"><?php echo $count; ?></span><?php } ?></button>
    берем catalog\controller\checkout\cart.php
    в трех местах эту строку
    Код:
    $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));
    меняем на эту
    Код:
    $json['count'] = $this->cart->countProducts();
    берем catalog\view\theme\default\template\product\product.tpl
    эту строку
    Код:
    $('#cart > button').html('<i class="fa fa-shopping-cart"></i> ' + json['total']);
    меняем на эту
    Код:
    $('#cart > button').html('<img src="catalog/view/theme/default/image/cart.png"><span class="count"> ' + json['count'] + '</span>');
    берем catalog\view\javascript\common.js
    в этом куске
    Код:
    // Cart add remove functions
    var cart = {
        'add': function(product_id, quantity) {
            $.ajax({
                url: 'index.php?route=checkout/cart/add',
                type: 'post',
                data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
                dataType: 'json',
                beforeSend: function() {
                    $('#cart > button').button('loading');
                },
                complete: function() {
                    $('#cart > button').button('reset');
                },           
                success: function(json) {
                    $('.alert, .text-danger').remove();
    
                    if (json['redirect']) {
                        location = json['redirect'];
                    }
    
                    if (json['success']) {
                        $('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
                       
                        // Need to set timeout otherwise it wont update the total
                        setTimeout(function () {
                            $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
                        }, 100);
                   
                        $('html, body').animate({ scrollTop: 0 }, 'slow');
    
                        $('#cart > ul').load('index.php?route=common/cart/info ul li');
                    }
                }
            });
        },
        'update': function(key, quantity) {
            $.ajax({
                url: 'index.php?route=checkout/cart/edit',
                type: 'post',
                data: 'key=' + key + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
                dataType: 'json',
                beforeSend: function() {
                    $('#cart > button').button('loading');
                },
                complete: function() {
                    $('#cart > button').button('reset');
                },           
                success: function(json) {
                    // Need to set timeout otherwise it wont update the total
                    setTimeout(function () {
                        $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
                    }, 100);
    
                    if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
                        location = 'index.php?route=checkout/cart';
                    } else {
                        $('#cart > ul').load('index.php?route=common/cart/info ul li');
                    }
                }
            });
        },
        'remove': function(key) {
            $.ajax({
                url: 'index.php?route=checkout/cart/remove',
                type: 'post',
                data: 'key=' + key,
                dataType: 'json',
                beforeSend: function() {
                    $('#cart > button').button('loading');
                },
                complete: function() {
                    $('#cart > button').button('reset');
                },           
                success: function(json) {
                    // Need to set timeout otherwise it wont update the total
                    setTimeout(function () {
                        $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
                    }, 100);
                       
                    if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
                        location = 'index.php?route=checkout/cart';
                    } else {
                        $('#cart > ul').load('index.php?route=common/cart/info ul li');
                    }
                }
            });
        }
    }
    меняем эти три строки
    Код:
    $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
    первая и вторая
    Код:
    $('#cart > button').html('<img src="catalog/view/theme/default/image/cart.png"><span class="count">' + json['count'] + '</span>');
    третья
    Код:
    if (json['count'] != 0) {
                            $('#cart > button').html('<img src="catalog/view/theme/default/image/cart.png"><span class="count">' + json['count'] + '</span>');
                        } else {
                            $('#cart > button').html('<img src="catalog/view/theme/default/image/cart.png">');
                        }
    берем catalog\view\theme\default\stylesheet\stylesheet.css
    переписываем стили
    Код:
    /* cart */
    #cart {
        margin-bottom: 10px;
    }
    #cart > .btn {
        font-size: 12px;
        line-height: 18px;
        color: #FFF;
    }
    #cart.open > .btn {
        background-image: none;
        background-color: #FFFFFF;
        border: 1px solid #E6E6E6;
        color: #666;
        box-shadow: none;
        text-shadow: none;
    }
    #cart.open > .btn:hover {
        color: #444;
    }
    как то так
    Код:
    /* cart */
    #cart {
        margin-bottom: 10px;
    }
    #cart img {
        width: 50px;
        height: 40px;
    }
    #cart .count {
        color: #660000;
        position: absolute;
        margin: 2px 10px 20px -25px;
        font-size: 15px;
        font-weight: 600;
        border-radius: 10px;
        height: 20px;
        width: 20px;
        background: yellow;
    
    }
    #cart > .btn {
        font-size: 12px;
        line-height: 18px;
        color: #FFF;
    }
    #cart button.btn.btn-inverse {
        background: none;
        border: 0px;
    }
    #cart.open > .btn {
        background-image: none;
        background-color: none;
        border: 0px;
        color: #FFF;
        box-shadow: none;
        text-shadow: none;
    }
    #cart.open > .btn:hover {
        color: #FFF;
    }
     

    Вложения:

    • cart.png
      cart.png
      Размер файла:
      9,4 КБ
      Просмотров:
      12
    Andrey1111, Sa1nt и MEhmet SEzgi нравится это.
  2. Offline

    Andrey1111 Пользователь

    Сообщения:
    4
    Симпатии:
    1
    Репутация:
    0
    При удалении одного продукта вместо кол-ва выводит undefined..
    Все проверил вроде правильно..