[2.x.x] Варианты товара выпадающим списком

Доработка позволяет заменить надоедлевые радиокнопки на выпадающий список выбора варианта товара.

При переключении варианта (если цены у вариантов разные) переключается и цена.

 

1. В файле design/ваша тема/html/index.tpl после строк:

$(function() {

пропишите такой вот код:

// Выбор варианта
$('select[name=variant]').live('change', function(){
	price = $(this).find('option:selected').attr('data-price');
	compare_price = $(this).find('option:selected').attr('data-compare-price');
	$(this).closest('form.variants').find('.prc-new').html(price);
	$(this).closest('form.variants').find('.prc-old').html(compare_price);
	return false;
});

 

2. В файле design/ваша тема/html/product.tpl вместо:

{if $product->variants|count > 0}
<!-- Выбор варианта товара -->
<form class="variants" action="/cart">
	<table>
	{foreach $product->variants as $v}
		<tr class="variant">
			<td>
				<input id="product_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $product->variant->id==$v->id}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>
			</td>
			<td>
				{if $v->name}<label class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if}
			</td>
			<td>
				{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
				<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
			</td>
		</tr>
	{/foreach}
	</table>
	<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
</form>
<!-- Выбор варианта товара (The End) -->
{else}
	Нет в наличии
{/if}

пропишите такой код:

{if $product->variants|count>0}
<form class="variants" action="/cart">
	<span class="prc-new">{$product->variant->price|convert} {$currency->sign|escape}</span>
	<span class="prc-old">{$product->variant->compare_price|convert} {$currency->sign|escape}</span>
	{if $product->variants|count>1}
	<select name="variant">
		{foreach $product->variants as $v}
		<option value="{$v->id}" data-price="{$v->price|convert} {$currency->sign|escape}" data-compare-price="{$v->compare_price|convert} {$currency->sign|escape}">{$v->name}</option>
		{/foreach}
	</select>
	{else}
	<input type="radio" name="variant" value="{$product->variant->id}" checked style="display:none!important"/>
	{/if}
	<input type="submit" value="в корзину" class="button" data-result-text="добавлено"/>
</form>
{else}
Нет в наличии
{/if}

prc-new - класс тега с обычной ценой

prc-old - класс тега со старой ценой

 

Готово!





Всего 8 комментариев

  1. Александр
    #1

    а как можно посмотреть внешний вид этого модуля? или вы его под заказчика настраиваете?

  2. Noxter
    #2

    Александр, а по вашему на картинке что изображено?

    Там нечего настривать, обычный выпадающий список вместо радиокнопок (галочек в народе называют).

     

  3. Александр
    #3

    Noxter, понял, это как раз то, что я искал.

    только не пойму, как его поставить, у себя не найду, что надо заменить.

    Посоветуйте, кто может помоч, не только по этому вопросу, а вообще по сайту.

    Сам я в этом мало разбираюсь.

    Разумеется не бесплатно.

  4. Noxter
    #4

    Александр, пишите в скайп simplacms, обсудим детали по вашему сайту.

     

  5. Oscleliss
    #5

    Здравствуйте! Просьба помочь. Сделал варианты товаров выпадающим списком - всё работает, кроме символа валюты. При загрузке страницы товара место символа валюты "€" отображается 1. При изменении варианта товара символ "€" отображается, но при первой загрузке страницы такого не происходит.

  6. Oscleliss
    #6

    В строчке

     

    <span class="prc-new">{$product->variant->price|convert} {$currency-sign|escape}</span>
    не {$currency-sign|escape}, а {$currency->sign|escape}
    исправьте
  7. Noxter
    #7

    Oscleliss, спасибо исправили D83DDE09

     

  8. Александр
    #8

    Доброго времени суток, сделал всё по инструкции , если нет старой цены то выводится 0, если есть то выводится старая цена. Подскажите как сделать так что бы 0 не выводился. Спасибо.

× Вам нужно зарегистрироваться либо войти на сайт чтобы комментировать.