БЛОГОДЖУМЛА - БЛОГ О ДЖУМЛА

Как вывести свойство товара "Цвет" не select-ом, а radiobutton. Продолжение.

  • Категория: Virtuemart 1
  • Автор:
  • Просмотров: 12891

 

 

Обещанное продолжение. Радиобутонны вместо селекта мы вывели. Но, в идеале, хотелось бы видеть и щелкать по самим цветам, а не по батонам. Например, вот так:


Вот тут нам поможет любимый jquery.


Скрыть радиобутоны просто - в шаблоне в head подгружем jquery и jquery.uniform.min.js :






 


	
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>

	

 

Cкачиваем к себе на сайт https://github.com/pixelmatrix/uniform/blob/master/jquery.uniform.min.js , кладем в папку js своего шаблона и подключаем в index.php вот так - 







	<script src="/<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/js/jquery.uniform.min.js" type="text/javascript"></script>

Я думаю, это более правильный путь. 

После этого включаем jquery в режиме noConflict - чтобы не было проблем с другими скриптами. И указываем какие радиобуттоны мы будем менять:








	<script type="text/javascript">

	var j = jQuery.noConflict();

	j(function(){

	j(".vmCartAttributes input:radio").uniform();

	});

	</script>

	

Далее в на css файл мы должны вставить оформление, что-то типа:








	div.radio {

	float: left;

	position: relative;

	margin-right: 10px;

	height: 18px;

	width: 18px;

	}

	#uniform-tsvet930901 span, #uniform-tsvet930902 span, #uniform-tsvet930903 span,

	#uniform-tsvet930904 span, #uniform-tsvet930905 span, #uniform-tsvet930906 span,

	#uniform-tsvet930907 span{width:15px;height:15px;border:2px solid white;cursor:pointer}

	#uniform-tsvet930901 span{background:red}

	#uniform-tsvet930902 span{background:orange}

	#uniform-tsvet930903 span{background:yellow}

	#uniform-tsvet930904 span{background:green}

	#uniform-tsvet930905 span{background:#2b8eca}

	#uniform-tsvet930906 span{background:blue}

	#uniform-tsvet930907 span{background:brown}

	span.checked {border-color:#cbcbcb !important}

	

Как Вы понимаете, в tsvet930901 93090 - это id товара, а 1 - порядковый номер цвета. В принципе, если у Вас у всех товаров будут одинаковые палитры цветов - Вы можете исключить из названия id товара. Это формируется вот в этой строке:








	id="'.vm_translate($attribute['titlevar']).$attribute['product_id'].$i.'"

	

в итоге получим следующий вид:






 


	id="'.vm_translate($attribute['titlevar']).$i.'"



 

Благодаря этому изменению мы привели карточку товара к профессиональному виду. И, я надеюсь, Ваши продажи увеличатся wink

P.S. Спасибо моему читалю  Aleks Luhter за найденную ошибку в первоначальном тексте статьи. Теперь с уверенностью можно сказать, что хак проверен читателями.

Back to top