1. Копируем файлы :
edit_order.php - в core\includes\processor
edit_order.tpl.html - в core\tpl\user\название шаблона
loading.gif - в data\название шаблона
2. В index.php строку
if ( isset ( $_GET["do"] )) { if ( in_array($_GET["do"], array( "captcha", "cart", "rss", "compare", "yandex", "invoice_jur", "invoice_phys", "stat", "get_file" ))) {
меняем на :
if ( isset ( $_GET["do"] )) { if ( in_array($_GET["do"], array( "captcha", "cart", "rss", "compare", "yandex", "invoice_jur", "invoice_phys", "stat", "get_file", "edit_order" ))) {
3. В order_history.php находим строки :
$smarty->assign( "order_detailed", 1 );
и после них вставляем :
$smarty->assign( "orderContent_q", count($orderContent));
4. В order_history.tpl.html :
В самом начале вставляем :
<script type="text/javascript"> {literal} function beforeSubmit(res) { $(res).prepend('<div id="loader" style="position:fixed;display:none;z-index:100;"><img src="/data/{/literal}{$smarty.const.TPL}{literal}/loading.gif"></div>'); document.getElementById('loader').style.left = parseInt((document.documentElement.clientWidth-80)/2)+'px'; document.getElementById('loader').style.top = parseInt((document.documentElement.clientHeight-80)/2)+'px'; document.getElementById('loader').style.display='block'; } function del_order(){ var order_id = $("#order_id").val(); $.ajax({ type: "POST", url: "/index.php?do=edit_order", cache: true, beforeSend: beforeSubmit ('#editResult'), data: {order_detailed : order_id, num_del_order : order_id}, error: function() { alert('Ошибка передачи данных'); }, success: function(html) { $("#editResult").empty(); $('#del_order_ok').fadeIn(); setTimeout(function() { $('#del_order_ok').fadeOut(); },2000); $("#editResult").append(html); } }); } function chan_q (chan_num){ var chan_id = $("#chan_id_"+chan_num).val(); var Quantity_or = $("#Quantity_or_"+chan_num).val(); var order_id = $("#order_id").val(); if (Quantity_or < 1 || isNaN(Quantity_or)) { alert ("Пожалуйста, укажите количество правильно") ; return false; } $.ajax({ type: "POST", url: "/index.php?do=edit_order", cache: true, beforeSend: beforeSubmit('#editResult'), data: {chan_id : chan_id, Quantity_or : Quantity_or, order_detailed : order_id}, error: function() { alert('Ошибка передачи данных'); }, success: function(html) { $("#editResult").empty(); $('#chan_ok').fadeIn(); setTimeout(function() { $('#chan_ok').fadeOut(); },2000); $("#editResult").append(html); } }); } function add_tovar(){ var add_id = $("#add_id").val(); var order_id = $("#order_id").val(); var quantity_add = $("#quantity_add").val(); if (add_id < 1 || isNaN(add_id) || add_id == '' ) { alert ("Пожалуйста, укажите код товара правильно") ; return false; } $.ajax({ type: "POST", url: "/index.php?do=edit_order", cache: true, beforeSend: beforeSubmit('#editResult'), data: {code_add : add_id , quantity_add : quantity_add, order_detailed : order_id}, error: function() { alert('Ошибка передачи данных'); }, success: function(html) { $("#editResult").empty(); $("#editResult").append(html); $("#add_id").val(''); $("#quantity_add").val(''); if (document.getElementById('no_code').innerHTML == "") { $('#add_ok').fadeIn(); setTimeout(function() { $('#add_ok').fadeOut(); },2000); } else { $('#add_no').fadeIn(); setTimeout(function() { $('#add_no').fadeOut(); },2000); } } }); } function del_tovar(del_num){ var del_id = $("#del_id_"+del_num).val(); var order_id = $("#order_id").val(); $.ajax({ type: "POST", url: "/index.php?do=edit_order", cache: true, beforeSend: beforeSubmit('#editResult'), data: {del_id : del_id, order_detailed : order_id}, error: function() { alert('Ошибка передачи данных'); }, success: function(html) { $("#editResult").empty(); $('#del_ok').fadeIn(); setTimeout(function() { $('#del_ok').fadeOut(); },2000); $("#editResult").append(html); } }); } {/literal} </script>
До! первого! вхождения строки :
<div class="fil1 white"></div>
вставляем :
<input id="order_id" name="order_detailed" type="hidden" value="{$order.orderID}"> <div style="display: none;position: fixed;left: 40%;top:40%;width: 300px;height: 58px;background: none repeat scroll 0 0 #FFEBB2; text-align: center;font-weight: bold;border: 3px solid #E48234;font-size: 13px;" id="chan_ok"><div><br>Количество товара успешно изменено</div></div> <div style="display: none;position: fixed;left: 40%;top:40%;width: 300px;height: 58px;background: none repeat scroll 0 0 #FFEBB2; text-align: center;font-weight: bold;border: 3px solid #E48234;font-size: 13px;" id="del_ok"><div><br>Товар успешно удален</div></div> <div style="display: none;position: fixed;left: 40%;top:40%;width: 300px;height: 58px;background: none repeat scroll 0 0 #FFEBB2; text-align: center;font-weight: bold;border: 3px solid #E48234;font-size: 13px;" id="add_ok"><div><br>Товар успешно добавлен</div></div> <div style="display: none;position: fixed;left: 40%;top:40%;width: 300px;height: 58px;background: none repeat scroll 0 0 #FFEBB2; text-align: center;font-weight: bold;border: 3px solid #E48234;font-size: 13px;" id="add_no"><div><br>Товар не найден или отсутствует в продаже</div></div>
Строку :
<td class="padt" align="left" valign="middle">{$orderContent[i].Quantity}</td>
меняем на :
<td class="padt" align="left" valign="middle"> {if $order.statusID != "5" and $order.statusID != "1"} <input style="width:25px;text-align:center" id="Quantity_or_{$smarty.section.i.index}" name="Quantity_or" type="text" value="{$orderContent[i].Quantity}" onchange="chan_q('{$smarty.section.i.index}'); return false"> <input id="chan_id_{$smarty.section.i.index}" name="chan_id" type="hidden" value="{$orderContent[i].name}"> {else}{$orderContent[i].Quantity}{/if} </td>
Находим строку :
<td class="hmin" align="left">
Чуть выше нее (тэг начала таблицы для этой ячейки) строку
<table cellspacing="0" cellpadding="0" width="100%">
меняем на :
<table id="editResult" cellspacing="0" cellpadding="0" width="100%">
Находим строку :
<td class="padt" align="left" valign="middle" nowrap="nowrap">{$orderContent[i].PriceToShow}</td>
после нее вставляем :
{if $order.statusID != "5" and $order.statusID != "1" and $orderContent_q > 1} <td align="center"> <input id="del_id_{$smarty.section.i.index}" name="del_id_{$smarty.section.i.index}" type="hidden" value="{$orderContent[i].name}"> <a onclick="del_tovar('{$smarty.section.i.index}');return false;" style="cursor:pointer">X</a> </td>{/if}
Находим строку :
<td class="lt pad" align="left" valign="middle">{$smarty.const.TABLE_PRODUCT_COST_WITHOUT_TAX}</td>
Вместо нее вставляем :
<td class="lt pad" align="left" valign="middle" {if $order.statusID != "5" and $order.statusID != "1" and $orderContent_q > 1} colspan="2"{/if}>{$smarty.const.TABLE_PRODUCT_COST_WITHOUT_TAX}</td>
Находим строку :
<td class="padt" align="right" valign="middle" colspan="2">{$smarty.const.STRING_PRED_TOTAL}:</td>
Вместо нее вставляем :
<td class="padt" align="right" valign="middle" {if $order.statusID != "5" and $order.statusID != "1" and $orderContent_q > 1}colspan="3"{else}colspan="2"{/if}>{$smarty.const.STRING_PRED_TOTAL}:</td>
Находим строку :
<td class="padt" align="right" valign="middle" colspan="2">{$smarty.const.ADMIN_DISCOUNT} {$order.order_discount}%:</td>
Вместо нее вставляем :
<td class="padt" align="right" valign="middle" {if $order.statusID != "5" and $order.statusID != "1" and $orderContent_q > 1}colspan="3"{else}colspan="2"{/if}>{$smarty.const.ADMIN_DISCOUNT} {$order.order_discount}%:</td>
Находим строку :
<td class="padt" align="right" valign="middle" colspan="2">{$smarty.const.ADMIN_SHIPPING_COST}:</td>
Вместо нее вставляем :
<td class="padt" align="right" valign="middle" {if $order.statusID != "5" and $order.statusID != "1" and $orderContent_q > 1}colspan="3"{else}colspan="2"{/if}>{$smarty.const.ADMIN_SHIPPING_COST}:</td>
Находим строку :
<td class="padt cl12" align="right" valign="middle" colspan="2">{$smarty.const.TABLE_TOTAL}:</td>
Вместо нее вставляем :
<td class="padt cl12" align="right" valign="middle" {if $order.statusID != "5" and $order.statusID != "1" and $orderContent_q > 1}colspan="3"{else}colspan="2"{/if}>{$smarty.const.TABLE_TOTAL}:</td>
Находим строку :
{if $order_status_report}
Перед ней вставляем :
{if $order.statusID != "5" and $order.statusID != "1"} <table cellspacing="0" cellpadding="0" width="100%"> <tr> <td class="cbt" align="left"><b>Действия над заказом</b></td> </tr> </table> <table cellspacing="1" cellpadding="10" width="100%" class="gre"> <tr> <td align="center"><input type="button" onclick="add_tovar();return false;" value="Добавить товар к заказу"></td> <td align="center"><input id="add_id" type="text" class="input_style" placeholder="Введите код товара" name="code_add"></td> <td align="center"><input id="quantity_add" type="text" class="input_style" placeholder="Введите количество" name="quantity_add"> </td> </tr> <tr><td align="center"> <br> <input type="button" onclick="del_order();return false;" value="Отменить заказ"></td><td></td><td></td></tr> </table> {/if}
Условия :
{if $order.statusID != "5" and $order.statusID != "1"}
подразумевают, что покупатель не может редактировать заказ, если он Выполнен, или Отменен. Кому это не нужно, или у кого статусы заказов другие, можно это убрать или изменить.