Drag and drop корзина tpl — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показано 7 промежуточных версий 2 участников)
Строка 1: Строка 1:
 +
'''Актуально для версии 2.9'''
 +
 
В этом примере мы будем делать так, чтобы пользователи могли просто перетаскивать товары в корзину.<br>
 
В этом примере мы будем делать так, чтобы пользователи могли просто перетаскивать товары в корзину.<br>
  
Для начала необходимо убедиться, что у вас в шаблоне используются макросы
+
Для начала необходимо убедиться, что у вас в шаблоне используются макрос
 
<source lang="php">
 
<source lang="php">
%system includeQuickEditJs()%
+
<xsl:value-of select="document('udata://system/includeQuickEditJs')/udata" disable-output-escaping="yes" />
%system includeEditInPlaceJs()%
 
 
</source>
 
</source>
 
А затем в шапку шаблона добавляем следующий код:
 
А затем в шапку шаблона добавляем следующий код:
<source lang="html">
+
<source lang="html4strict">
 
<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
 
<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
 
</source>
 
</source>
Строка 63: Строка 64:
 
</style>
 
</style>
 
</source>
 
</source>
<source lang="js">
+
<source lang="javascript">
 
<script>
 
<script>
 
var data = {"total":0,"rows":[]};
 
var data = {"total":0,"rows":[]};
 
var totalCost = 0;
 
var totalCost = 0;
+
 
 
$(function(){
 
$(function(){
 
$('#cartcontent').datagrid({
 
$('#cartcontent').datagrid({
Строка 91: Строка 92:
 
},
 
},
 
onDrop:function(e,source){
 
onDrop:function(e,source){
alert('Yeah');
+
                                        id = %element_id%;
 +
alert('Товар добавлен в корзину');
 +
                                        jQuery.post("/emarket/basket/put/element/"+id+"/");
 +
                                        location.reload();
 
}
 
}
 
});
 
});
 
});
 
});
+
 
 
function addProduct(name,price){
 
function addProduct(name,price){
 
function add(){
 
function add(){
Строка 108: Строка 112:
 
</source>
 
</source>
  
Примечание: все товары которые вы желаете перетаскивать в корзину должны иметь класс "object".
+
На это всё, drag and drop перетаскивание в корзину должно заработать.<br>
 +
 
 +
Примечание: все товары которые вы желаете перетаскивать в корзину должны иметь класс "object", а сама корзина класс "basket_info".<br>
 
Внимание: функционирование описанного выше примера гарантируется только в версии 2.8.6<br>
 
Внимание: функционирование описанного выше примера гарантируется только в версии 2.8.6<br>
 
Инструкция для xslt шаблона [[Drag and drop корзина xslt]]
 
Инструкция для xslt шаблона [[Drag and drop корзина xslt]]
[[Категория:Модуль Интернет магазин]] [[Категория:TPL шаблонизатор]]
+
[[Категория:Модуль Интернет магазин]][[Категория:Верстка в TPL]]

Текущая версия на 08:53, 16 августа 2018

Актуально для версии 2.9

В этом примере мы будем делать так, чтобы пользователи могли просто перетаскивать товары в корзину.

Для начала необходимо убедиться, что у вас в шаблоне используются макрос

<xsl:value-of select="document('udata://system/includeQuickEditJs')/udata" disable-output-escaping="yes" />

А затем в шапку шаблона добавляем следующий код:

<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
<style type="text/css">
		.products{
			list-style:none;
			margin-right:300px;
			padding:0px;
			height:100%;
		}
		.products li{
			display:inline;
			float:left;
			margin:10px;
		}
		.object{
			display:block;
			text-decoration:none;
		}
		.object img{
			border:1px solid #333;
		}
		.object p{
			margin:0;
			font-weight:bold;
			text-align:center;
			color:#c3c3c3;
		}
		.basket_info{
			position:fixed;
			right:0;
			top:0;
			width:300px;
			height:100%;
			background:#ccc;
			padding:0px 10px;
		}
		h1{
			text-align:center;
			color:#555;
		}
		h2{
			position:absolute;
			font-size:16px;
			left:10px;
			bottom:20px;
			color:#555;
		}
		.total{
			margin:0;
			text-align:right;
			padding-right:20px;
		}
	</style>
<script>
		var data = {"total":0,"rows":[]};
		var totalCost = 0;

		$(function(){
			$('#cartcontent').datagrid({
				singleSelect:true
			});
			$('.object').draggable({
				revert:true,
				proxy:'clone',
				onStartDrag:function(){
					$(this).draggable('options').cursor = 'not-allowed';
					$(this).draggable('proxy').css('z-index',10);
				},
				onStopDrag:function(){
					$(this).draggable('options').cursor='move';
				}
			});
			$('.basket_info').droppable({
				onDragEnter:function(e,source){
					$(source).draggable('options').cursor='auto';
				},
				onDragLeave:function(e,source){
					$(source).draggable('options').cursor='not-allowed';
				},
				onDrop:function(e,source){
                                        id = %element_id%;
					alert('Товар добавлен в корзину');
                                        jQuery.post("/emarket/basket/put/element/"+id+"/");
                                        location.reload();
				}
			});
		});

		function addProduct(name,price){
			function add(){
				alert('Bas');
			}
			add();
			totalCost += price;
			$('#cartcontent').datagrid('loadData', data);
			$('div.basket_info .total').html('Total: $'+totalCost);
		}
	</script>

На это всё, drag and drop перетаскивание в корзину должно заработать.

Примечание: все товары которые вы желаете перетаскивать в корзину должны иметь класс "object", а сама корзина класс "basket_info".
Внимание: функционирование описанного выше примера гарантируется только в версии 2.8.6
Инструкция для xslt шаблона Drag and drop корзина xslt