Oleg

Oleg

Был в сети 14 мая 2019, 17:25
Заказы не принимаю
Андрей
Андрей
Самое главное — это внимательность =) Ну и немного логики.

{foreach $deliveries as $delivery index=$index}
{var $checked = !$order.delivery && $index == 0 || $delivery.id == $order.delivery}
    
    <label> // лишний открывающий тег
        <input id="{$delivery.id}" type="radio" name="delivery" class="radio" value="{$delivery.id}" id="delivery_{$delivery.id}" data-payments="{$delivery.payments | json_encode}" {$checked ? 'checked' : ''}>
    // В input выше два раза указан id, из за чего и глючит js.
    
    //Если сильно надо то ниже id надо указывать как в input - delivery_{$delivery.id}
    <label for="{$delivery.id}" class="label">
        {if $delivery.logo?}
            <img src="{$delivery.logo}" alt="{$delivery.name}" title="{$delivery.name}"/>
        {else}
            {$delivery.name}
         {/if}
        
         {*if $delivery.description?}
             <p class="small">
                  {$delivery.description}
             </p>
         {/if*}
        </span> // лишний закрывающий тег
        </label>
{/foreach}

А если из консоли браузера перейти в файл в котором указывается эта ошибка, то там сразу было видно на что ругается скрипт)
Игорь Гришанов
Игорь Гришанов
Павел абсолютно прав) Только что делал таким образом

Порядок действий такой
1) Находишь файл core/components/minishop2/model/minishop2/msorderhandler.class.php
2) находишь там функцию getCost и заменяешь ее тем что в приведенной Павлом ссылке
3) добавляешь скрипт из той же ссылки на страницу Оформления заказа в самом низу
4) выводишь ссылку в нужном месте
<span id="deliveryprice">Стоимость доставки: <span id="ms2_delivery_cost"></span> руб.</span>

это будет цена доставки
5) если еще надо цену заказа БЕЗ доставки то добавляешь в скрипт в функцию miniShop2.Callbacks.Order.getcost.response.success
такие строки например
var cartcost = response.data['cost'] - rdc;
    $('#ms2_cost').text(cartcost);
тогда ссылка на цену без доставки будет так
<span  id="ms2_cost"></span>
Дмитрий Середюк
Дмитрий Середюк
<form method="post" class="ms2_form form-inline" role="form">
    <input type="hidden" name="key" value="{$product.key}"/>
    <div class="number-item">
        <button class="minus">-</button>
            <input type="num" class="amout" data-amout="amout" data-min="1" data-max="9999" name="count" value="{$product.count}">
        <button class="plus">+</button>
    </div>
    <button class="btn btn-default" type="submit" name="ms2_action" value="cart/change"></button>
</form>

function itemCount(field){
    var fieldCount = function(el) {
        var
	    // Мин. значение
	    min = el.data('min') || false,
	    // Макс. значение
	    max = el.data('max') || false,
	    // Кнопка уменьшения кол-ва
	    dec = el.prev('.minus'),
	    // Кнопка увеличения кол-ва
	    inc = el.next('.plus');
	function init(el) {
	    if(!el.attr('disabled')){
		dec.on('click', decrement);
		inc.on('click', increment);
	    }
	    // Уменьшим значение
	    function decrement() {
		var value = parseInt(el[0].value);
		value--;
		if(!min || value >= min) {
		    el[0].value = value;
	         }
	    }
	   // Увеличим значение
	   function increment() {
		var value = parseInt(el[0].value);
		value++;
		if(!max || value <= max) {
		    el[0].value = value++;
		}
	    }
	}
	el.each(function() {
	    init($(this));
	});
    };
    $(field).each(function(){
        fieldCount($(this));
    });
 } itemCount('[data-amout="amout"]');
Евгений Webinmd
Евгений Webinmd
у меня такой код

js
$('.bminus').on('click',function () {
    var $input = $(this).parent().find('input');
    var val = +$input[0].defaultValue;
    var count = parseInt($input.val()) - 1;
    count = count < 1 ? 1 : count; 
    $input.val(count);
    $input.change();
    return false;
});

$('.bplus').on('click',function () {
    var $input = $(this).parent().find('input');
    var val = +$input[0].defaultValue; 
    $input.val(parseInt($input.val()) + 1);
    $input.change();
    return false;
});
html
<div class="quantity">
    <input type="text" name="count" value="1"  required>
    <span class="bplus"></span>
    <span class="bminus"></span>
</div>