Skip to content

Commit bf38107

Browse files
committed
Add drag & drop value product
1 parent 25d45c0 commit bf38107

File tree

9 files changed

+61
-11
lines changed

9 files changed

+61
-11
lines changed

admin.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public function __construct($t = null)
6666
// --- Recursive Actions
6767
if (http_request::isGet('attr')) $this->pages = $formClean->arrayClean($_GET['attr']);
6868
# ORDER PAGE
69-
if (http_request::isPost('attr')) $this->order = $formClean->arrayClean($_POST['attr']);
69+
if (http_request::isPost('attribute')) $this->order = $formClean->arrayClean($_POST['attribute']);
7070
if (http_request::isGet('plugin')) $this->plugin = $formClean->simpleClean($_GET['plugin']);
7171
# JSON LINK (TinyMCE)
7272
//if (http_request::isGet('iso')) $this->iso = $formClean->simpleClean($_GET['iso']);
@@ -160,6 +160,7 @@ private function upd($data)
160160
case 'page':
161161
case 'contentPage':
162162
case 'contentValue':
163+
case 'order':
163164
parent::update(
164165
array(
165166
'context' => $data['context'],
@@ -343,6 +344,14 @@ public function getCategory(){
343344

344345
$this->template->assign('cats',$lists);
345346
}
347+
/**
348+
* @param $type
349+
*/
350+
protected function order(){
351+
for ($i = 0; $i < count($this->order); $i++) {
352+
$this->upd(['type' => 'order', 'data' => ['id_attr_p' => $this->order[$i], 'order_attr_p' => $i]]);
353+
}
354+
}
346355
/**
347356
* @throws Exception
348357
*/
@@ -503,6 +512,11 @@ public function run()
503512
);
504513
}
505514
break;
515+
case 'order':
516+
if (isset($this->order) && is_array($this->order)) {
517+
$this->order();
518+
}
519+
break;
506520
}
507521
}else{
508522
$this->modelLanguage->getLanguage();

db.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ public function fetchData($config, $params = false)
168168
JOIN mc_attribute_content AS c ON(c.id_attr = ac.id_attr)
169169
JOIN mc_lang AS lang ON(vc.id_lang = lang.id_lang AND c.id_lang = lang.id_lang)
170170
WHERE lang.iso_lang = :iso AND ap.id_product = :id
171-
ORDER BY id_attr, id_attr_va';
171+
ORDER BY order_attr_p';
172172
break;
173173
case 'langValueInProduct':
174174
$sql = 'SELECT
@@ -362,14 +362,18 @@ public function insert($config,$params = array())
362362
$sql = "INSERT INTO mc_attribute_category (id_attr, id_cat, date_register)
363363
VALUE (:id_attr, :id_cat, NOW())";
364364
break;
365-
case 'product':
365+
/*case 'product':
366366
$sql = "INSERT INTO mc_attribute_product (id_attr_va, id_product, price_p, date_register)
367367
VALUE (:id_attr_va, :id_product, :price_p, NOW())";
368-
break;
368+
break;*/
369369
case 'cartpay':
370370
$sql = "INSERT INTO mc_cartpay_attribute (id_attr_va, id_items, date_register)
371371
VALUE (:id_attr_va, :id_items, NOW())";
372372
break;
373+
case 'product':
374+
$sql = "INSERT INTO mc_attribute_product (id_attr_va, id_product, price_p,date_register, order_attr_p)
375+
SELECT :id_attr_va, :id_product, :price_p, NOW(), COUNT(id_attr_va) FROM mc_attribute_product WHERE id_product = '".$params['id_product']."'";
376+
break;
373377
}
374378

375379
if($sql === '') return 'Unknown request asked';
@@ -406,6 +410,11 @@ public function update($config,$params = array())
406410
value_attr = :value_attr
407411
WHERE id_attr_va = :id_attr_va AND id_lang = :id_lang';
408412
break;
413+
case 'order':
414+
$sql = 'UPDATE mc_attribute_product
415+
SET order_attr_p = :order_attr_p
416+
WHERE id_attr_p = :id_attr_p';
417+
break;
409418
}
410419

411420
if($sql === '') return 'Unknown request asked';

js/admin.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/src/admin.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,29 @@ var attribute = (function ($, undefined) {
2929
});
3030
}
3131
return {
32-
run: function (){
32+
run: function (controller){
3333
valueSelect();
34+
$( ".ui-sortable" ).sortable({
35+
items: "> tr",
36+
cursor: "move",
37+
axis: "y",
38+
update: function(){
39+
var serial = $( ".ui-sortable" ).sortable('serialize');
40+
$.jmRequest({
41+
handler: "ajax",
42+
url: controller+'&action=order',
43+
method: 'POST',
44+
data : serial,
45+
success:function(e){
46+
$.jmRequest.initbox(e,{
47+
display: false
48+
}
49+
);
50+
}
51+
});
52+
}
53+
});
54+
$( ".ui-sortable" ).disableSelection();
3455
}
3556
};
3657
})(jQuery);

public.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ private function setItemValue($row)
102102
//$data['id_product'] = $row['id_product'];
103103
$data['type'] = $row['type_attr'];
104104
$data['id'] = $row['id_attr_va'];
105+
$data['price'] = $row['price_p'];
105106
$data['name'] = $row['value_attr'];
106107
$data['iso'] = $row['iso_lang'];
107108
}

skin/admin/form/link-product.tpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{extends file="catalog/{$smarty.get.controller}/edit.tpl"}
22
{block name="plugin:content"}
33
{*<pre>{$attrvalue|print_r}</pre>*}
4-
{include file="section/form/list-form.tpl" controller="attribute" sub="attribute" controller_extend=true dir_controller="" data=$attrvalue id=$attrvalue.id class_form="col-ph-12 col-lg-6" class_table="col-ph-12 col-lg-6"}
4+
{include file="form/list-form.tpl" controller="attribute" sub="attribute" sortable=true controller_extend=true dir_controller="" data=$attrvalue id=$attrvalue.id class_form="col-ph-12 col-lg-6" class_table="col-ph-12 col-lg-6"}
55
{include file="modal/delete.tpl" controller="attribute" data_type='attribute' title={#modal_delete_title#|ucfirst} info_text=true delete_message={#delete_pages_message#}}
66
{/block}
77
{block name="foot"}
@@ -30,7 +30,7 @@
3030
{
3131
console.log("attribute is not defined");
3232
}else{
33-
attribute.run(iso);
33+
attribute.run("{$smarty.server.SCRIPT_NAME}?controller=attribute");
3434
}
3535
});
3636
</script>

skin/admin/form/list-form.tpl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22
{if !isset($class_table)}{$class_table = "col-ph-12 col-md-6"}{/if}
33
{if !isset($dir_controller)}{$dir_controller = $controller}{/if}
44
{if !isset($controller_extend)}{$controller_extend = false}{/if}
5+
{if !isset($sortable)}
6+
{$sortable = false}
7+
{/if}
58
<div class="row">
69
<form id="add_{$sub}" action="{$url}/{baseadmin}/index.php?controller={if $controller_extend}{$controller}{else}{$smarty.get.controller}{/if}&amp;action=add&tabs={$sub}&edit={$id}" data-sub="{$sub}" method="post" class="validate_form add_to_list {$class_form}">
710
{include file="{$dir_controller}{if !empty($dir_controller)}/{/if}form/{$sub}.tpl" editableRow=false}
811
</form>
912
<div class="{$class_table}">
1013
<div class="table-responsive">
1114
<table class="table table-condensed{if isset($customClass)} {$customClass}{/if}">
12-
<tbody id="{$sub}List" class="direct-edit-table">
15+
<tbody id="{$sub}List" class="direct-edit-table {if $sortable}ui-sortable{/if}">
1316
{if !empty($data)}
1417
{foreach $data as $row}
1518
{include file="{$dir_controller}{if !empty($dir_controller)}/{/if}loop/{$sub}.tpl" first=$row@first}

skin/admin/loop/attribute.tpl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
{$attrvalue = $row}
44
{/if}
55
{capture name="content"}
6+
{if $sortable}<td class="sort-handle"><span class="fas fa-arrows-alt-v"></span></td>{/if}
67
<td>{$attrvalue.id}</td>
78
<td>{$attrvalue.type}</td>
89
<td>{$attrvalue.name}</td>
910
<td>{if $attrvalue.price}{$attrvalue.price|string_format:"%.2f"}&nbsp;&euro;{elseif $attrvalue.price == null}&mdash;{else}{#price_0#|ucfirst}{/if}</td>
1011
{/capture}
1112
{/strip}
12-
{include file="loop/product-rows.tpl" controller="attribute" sub="attribute" content=$smarty.capture.content idc=$id id=$attrvalue.id editableRow=false}
13+
{include file="loop/product-rows.tpl" controller="attribute" sub="attribute" sortable=true content=$smarty.capture.content idc=$id id=$attrvalue.id editableRow=false}

sql/db.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ CREATE TABLE IF NOT EXISTS `mc_attribute_product` (
4545
`id_attr_p` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
4646
`id_attr_va` int(7) UNSIGNED NOT NULL,
4747
`id_product` int(11) UNSIGNED NOT NULL,
48-
`price_p` decimal(12,0) NULL,
48+
`price_p` decimal(12,2) DEFAULT NULL,
49+
`order_attr_p` smallint(5) UNSIGNED NOT NULL,
4950
`date_register` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
5051
PRIMARY KEY (`id_attr_p`),
5152
KEY `id_attr_va` (`id_attr_va`)

0 commit comments

Comments
 (0)