Перейти к содержанию
Официальный форум поддержки Simpla

Товары не в 1 столбик, а 2 или 3(решено) и Кнопка (выпадающий-список) размеров (решено)


Рекомендуемые сообщения

Доброго времени суток. Как реализовать , чтобы товары на странице отображались не все друг под другом, а хотя бы в 2 столбика. т.е 2 в ряд, подними еще 2 и так далее...

Ссылка на сообщение
Поделиться на другие сайты

спасибо большое, получилось.
Может быть кто знает как реалтзовать выпадающий список, в котором можно выбрать нужный вариант? Конкретно для размеров нужно, потому что, если делать через варианты, то получается слишком длинный список вниз. Готов поговорить насчёт оплаты.

Ссылка на сообщение
Поделиться на другие сайты

<!-- Выбор варианта товара -->			{* Не показывать выбор варианта, если он один и без названия *}			<select name="variant" {if $product->variants|count==1  && !$product->variant->name}style='display:none;'{/if}>				{foreach $product->variants as $v}				<option value="{$v->id}" {if $v->compare_price > 0}compare_price="{$v->compare_price|convert}"{/if} price="{$v->price|convert}">				{$v->name}				</option>				{/foreach}			</select>			<!-- Выбор варианта товара (The End) -->
Ссылка на сообщение
Поделиться на другие сайты

Код используется в products.tpl и в product.tpl... Просто заменяете свой вариант радио-баттоны:

{if $product->variants|count > 0}		<!-- Выбор варианта товара -->		<form class="variants" action="/cart">			<table>			{foreach $product->variants as $v}			<tr class="variant">				<td>					<input id="variants_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $v@first}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>				</td>				<td>					{if $v->name}<label class="variant_name" for="variants_{$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}


на тот, что я указал выше.
Ссылка на сообщение
Поделиться на другие сайты

ну ещё мне кажется, что в шаблонах так же должен присутствовать скрипт:

$(function() {	// Выбор вариантов	$('select[name=variant]').change(function() {		price = $(this).find('option:selected').attr('price');		compare_price = '';		if(typeof $(this).find('option:selected').attr('compare_price') == 'string')			compare_price = $(this).find('option:selected').attr('compare_price');		$(this).find('option:selected').attr('compare_price');		$(this).closest('form').find('span').html(price);		$(this).closest('form').find('strike').html(compare_price);		return false;			});
Ссылка на сообщение
Поделиться на другие сайты

и в product.tpl и в products.tpl код, отвечающий за варианты стал выглядеть так, а на деле как были радио-кнопки, так и остались, никакого выпадающего списка((

<!-- Выбор варианта товара -->			{* Не показывать выбор варианта, если он один и без названия *}			<select name="variant" {if $product->variants|count==1  && !$product->variant->name}style='display:none;'{/if}>				{foreach $product->variants as $v}				<option value="{$v->id}" {if $v->compare_price > 0}compare_price="{$v->compare_price|convert}"{/if} price="{$v->price|convert}">				{$v->name}				</option>				{/foreach}			</select><script>$(function() {	// Выбор вариантов	$('select[name=variant]').change(function() {		price = $(this).find('option:selected').attr('price');		compare_price = '';		if(typeof $(this).find('option:selected').attr('compare_price') == 'string')			compare_price = $(this).find('option:selected').attr('compare_price');		$(this).find('option:selected').attr('compare_price');		$(this).closest('form').find('span').html(price);		$(this).closest('form').find('strike').html(compare_price);		return false;			});</script>			<!-- Выбор варианта товара (The End) -->
Ссылка на сообщение
Поделиться на другие сайты

Вообщем полный листинг product.tpl:

{if $product->variants|count > 0}		<!-- Цена и заказ товара -->			<form class="cart" action="cart" method="get">				<!-- Выбор варианта товара -->			{* Не показывать выбор варианта, если он один и без названия *}				<select name="variant" {if $product->variants|count==1  && !$product->variant->name}style='display:none;'{/if}>					{foreach $product->variants as $v}						<option value="{$v->id}" {if $v->compare_price > 0}compare_price="{$v->compare_price|convert}"{/if} price="{$v->price|convert}" {if $v->id == $product->variant->id}selected{/if}>						{$v->name}						</option>					{/foreach}				</select>		<!-- Выбор варианта товара (The End) -->				<!-- Цена товара -->		<div class="price">			<strike>			{if $product->variant->compare_price > 0}			{$product->variant->compare_price|convert}			{/if}			</strike>			<span>{$product->variant->price|convert}</span>			<i>{$currency->sign|escape}</i>		</div>		<!-- Цена товара  (The End) -->					<!-- В корзину -->		<input type="submit" class="button" value="Заказать" added_text="Добавлено"/>		<!-- В корзину (The End) -->			</form>	<!-- Цена и заказ товара (The End)-->	{/if}<script>{literal}// Выбор вариантов	$('select[name=variant]').change(function() {		price = $(this).find('option:selected').attr('price');		compare_price = '';		if(typeof $(this).find('option:selected').attr('compare_price') == 'string')			compare_price = $(this).find('option:selected').attr('compare_price');		$(this).find('option:selected').attr('compare_price');		$(this).closest('form').find('span').html(price);		$(this).closest('form').find('strike').html(compare_price);		return false;			});});</script>{/literal}

в products.tpl все аналогично
Ссылка на сообщение
Поделиться на другие сайты

Что-то я не пойму, вставил ваш код в оба файла, как кругляшки с точкой были так и остались, никакого намека на выпадающий список. Я же весь старый код убрал, почему эти кругляшки сохранились?? Этот способ точно подходит для 2.1.0? До вашего кода у меня в данный файлах не было, например, строк про цену и заказ...

Ссылка на сообщение
Поделиться на другие сайты

если переходить на страницу товара, то "На веб-сайте произошла ошибка при получении *здесь url* . Веб-сайт может быть закрыт на обслуживание или настроен неправильно." И ещё, надо же ведь, чтоб и на главной отображалось в списке

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...
  • 3 недели спустя...

попробуй:
В шаблонах изменить код добавления в корзину на

<!-- В корзину -->
		<input type="submit" class="add_to_cart" value="В корзину"  added_text="Добавлено"/>
		<!-- В корзину (The End) -->


файл ajax_cart.js должен быть с таким содержанием:

// Аяксовая корзина$('form.cart').live('submit', function(e) {	e.preventDefault();	button = $(this).find('input[type=submit]');	$.ajax({		url: "ajax/cart.php",		data: {variant: $(this).find('select').val()},		dataType: 'json',		success: function(data){			$('#cart_informer').html(data);			if(button.attr('added_text'))				button.val(button.attr('added_text'));		}	});	var o1 = $(this).offset();	var o2 = $('#cart_informer').offset();	var dx = o1.left - o2.left;	var dy = o1.top - o2.top;	var distance = Math.sqrt(dx * dx + dy * dy);	$(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance);	$('.transfer_class').html($(this).closest('.product').find('.image').html());	$('.transfer_class').find('img').css('height', '100%');	return false;});/*// Аяксовая корзина$('a[href*=cart?variant]').live('click', function(e) {	e.preventDefault();	//variant_id = $(this).attr('id');		href = $(this).attr('href');	pattern = /\/?cart\?variant=(\d+)$/;	variant_id = pattern.exec(href)[1];		link = $(this);	$.ajax({		url: "ajax/cart.php",		data: {variant: variant_id},		dataType: 'json',		success: function(data){			$('#cart_informer').html(data);			//if(link.attr('added_text'))			//	link.html(link.attr('added_text'));			//link.attr('href', '/cart');		}	});	var o1 = $(this).offset();	var o2 = $('#cart_informer').offset();	var dx = o1.left - o2.left;	var dy = o1.top - o2.top;	var distance = Math.sqrt(dx * dx + dy * dy);	$(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance);		$('.transfer_class').html($(this).closest('.product').find('.image').html());	$('.transfer_class').find('img').css('height', '100%');	return false;});*/
Ссылка на сообщение
Поделиться на другие сайты

Всем спасибо. Сделал как написано, все получилось.
Только теперь появились другие вопросы:
- Раньше товар добавлялся в корзину (летел), но корзина не открывалась.
Сейчас сразу открывается корзина. Как сделать, как было до этого?
- Теперь руб. написано курсивом, как сделать обычный шрифт?

Ссылка на сообщение
Поделиться на другие сайты

Проблема не решена?

...но теперь сразу в корзину переходит...


Кто может подробно написать - что и как сделать, чтобы варианты товара были выпадающим списком? Если есть желание помочь, пишите сразу WMR кошелек, щедро отблагодарю - на деньги не жадный.
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

Загрузка...
×
×
  • Создать...