Помощь Как выделить выбраный товар opencart

Тема в разделе "Opencart", создана пользователем ihos, 31 янв 2014.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. ihos

    ihos Постоялец

    Регистр.:
    13 май 2012
    Сообщения:
    104
    Симпатии:
    2
    Как сделать выделение категории как на сайте http://www.art-east.ru/newitems/JPdesign/. Например количество товара по умолчанию стоит 0, когда ставишь количество 1, 2, 3 и так далее то товар выделяеться красной рамкой. Очень буду благодарен за ответ. Может какой-то модуль знает кто?
     
  2. LyToR

    LyToR Постоялец

    Регистр.:
    11 сен 2012
    Сообщения:
    145
    Симпатии:
    143
    Вам нужно сделать видимым количество товара? И что б это самое "количество" - не обрамлялось рамкой? Сделайте пожалуйста скрин, и выделите то что хотите сделать. Задавая вопрос - вы хотите получить ответ? Тогда максимально правильно и обширно объясните что нужно сделать.
     
  3. ihos

    ihos Постоялец

    Регистр.:
    13 май 2012
    Сообщения:
    104
    Симпатии:
    2
    Нет. Смотрите на скрин. Видите там в поле количество где введено любое число кроме 0 меняеться стиль, стает красная рамка ну и низ красный, мне хотябы рамку сделать! Не подскажите как это сделать
    Может это как то скриптом нужно задать, тоесть если например text>0 то включается класс другой.
     

    Вложения:

  4. Anton_Fadeev

    Anton_Fadeev Постоялец

    Регистр.:
    3 фев 2014
    Сообщения:
    50
    Симпатии:
    10
    Попробуйте такой скрипт:
    <script>
    $(function () {
    $('.to_basket').blur(function () {
    if ($(this).val()>0) {$(this).parents('.catGoodItemInn').addClass('redLine');}
    else {$(this).parents('.catGoodItemInn').removeClass('redLine');}
    });
    })
    </script>

    Где
    .to_basket - класс input в который вводятся значения
    .catGoodItemInn - класс div'а, которому надо сделать рамку

    Стиль
    .redLine {border:1px #F00 solid}

    Пример:
    <div class="catGoodItemInn">
    <div id="count">
    <input type="text" size="2" maxlength="5" value="0" class="to_basket">&nbsp;шт.
    </div>
    </div>


    Возможно не самый оптимальный, но должен работать
     
  5. pde2008

    pde2008 Создатель

    Регистр.:
    24 окт 2008
    Сообщения:
    35
    Симпатии:
    2
    А может модуль есть? Заодно чтобы с выделением цветом была возможность плюсом и минусом регулировать количество товара, которое следует добавить в корзину. (для ocstore 1.5.5.1)
     
  6. Anton_Fadeev

    Anton_Fadeev Постоялец

    Регистр.:
    3 фев 2014
    Сообщения:
    50
    Симпатии:
    10
    Может и есть - я не встречал. При желании можно и скрипт написать =) Если прикручивать [+][-] то мой скрипт надо немного изменить т.к. он срабатывает на blur, а надо будет изменить на change
     
  7. Anton_Fadeev

    Anton_Fadeev Постоялец

    Регистр.:
    3 фев 2014
    Сообщения:
    50
    Симпатии:
    10
    Могу сделать пример, где будет выделение цветом и кнопочки, если этого будет достаточно. Т.к. в приведенном примере все инпуты подвязаны к корзине - реализовать немного сложнее =) Ссылка на сайт есть - чтобы разметку глянуть?
     
  8. pde2008

    pde2008 Создатель

    Регистр.:
    24 окт 2008
    Сообщения:
    35
    Симпатии:
    2
    Примеры есть во многих платных темах от themeforest.
    Однако, мне нужно что бы можно было изменять количество кнопками плюс минус не только в корзине, но и при просмотре категории.

    Например, пользователь заходит в категорию "носки", и накидывает. 2 раза на плюсик "Носки 1", в поле количество становится 2 и именно эти носки выделяются рамкой другого цвета. Далее, 3 раза на плюсик "Носки2", количество 3 и "Носки2" выделены цветом. Нажали купить, получили в корзине 2 позиции. Вот как-то так. Ссылки на пример поищу, где-то в записывал.

    Вот, похожее, но это для макси сборки. А хотелось бы для ocstore 1.5.5.1
     
    Последнее редактирование: 4 фев 2014
  9. Anton_Fadeev

    Anton_Fadeev Постоялец

    Регистр.:
    3 фев 2014
    Сообщения:
    50
    Симпатии:
    10
    Т.е. Вы хотите, чтобы в категории можно было на нескольких товарах указать количество, а потом по нажатию одной кнопки "купить" на одном из товаров с выставленным кол-вом - все товары с кол-вом больше 0 падали в корзину? Попробую реализовать.
     
  10. Anton_Fadeev

    Anton_Fadeev Постоялец

    Регистр.:
    3 фев 2014
    Сообщения:
    50
    Симпатии:
    10
    Добавляем количество со стрелками в категорию:
    В файле catalog\view\theme\default\template\product\category.tpl
    после строчки
    Код:
    <div class="cart">

    находим строчку
    Код:
    <input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
    и меняем ее на
    Код:
    <div class="category_quantity">
    <input type="button" onclick="subtractQty(this)" value="-" class="qty-minus" />
    <input type="text" value="0" size="2" class="quantity" name="quantity_<?php echo $product['product_id']; ?>">
    <input type="button" onclick="addQty(this)" value="+" class="qty-plus" />
    <input type="button" value="Купить" onclick="addToCartQty('<?php echo $product['product_id']; ?>', this);" class="button" />
    </div>
    
    Далее если планируется использовать эти кнопки только в категориях, то в самый верх (после строки <?php echo $header; ?>) вставляем:
    Код:
    <script type="text/javascript">
    function addToCartQty(product_id, e) {
        var input=$(e).parent().find('input[type=text]');
        var qty = input.val();
    
        if (!isNaN(qty)) {
           if(!qty || qty==0){qty=1;}
            input.val(0);
      
            $.ajax({
                url: 'index.php?route=checkout/cart/add',
                type: 'post',
                data: 'product_id=' + product_id + '&quantity=' + qty,
                dataType: 'json',
                success: function(json) {
                    $('.success, .warning, .attention, .information, .error').remove();
              
                    if (json['redirect']) {
                        location = json['redirect'];
                    }
              
                    if (json['success']) {
                        $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
                  
                        $('.success').fadeIn('slow');
                  
                        $('#cart-total').html(json['total']);
                  
                    }
                }
            });
        }
    }
    
    
    function addQty(e) {
        var input=$(e).parent().find('input[type=text]');
        if (isNaN(input.val())) {
            input.val(0);
        }
        input.val(parseInt(input.val())+1);
        input.change();
    }
    
    function subtractQty(e) {
        var input=$(e).parent().find('input[type=text]');
        if (isNaN(input.val())) {
            input.val(0);
        }
        if ($(input).val()>0) {
            $(input).val(parseInt($(input).val())-1);   
        }
        input.change();
    }
    
    </script>
    
    На этом все. Если планируется прикрутить ко всему сайту, то скрипт прописываем в Header.tpl, и во всех модулях где надо меняем <input type="button" на код описанный выше
     
    Последнее редактирование: 4 фев 2014
    sidoruk2000 нравится это.