免责声明:首次使用OpenCart,并首次使用MVC环境。
我正在尝试修改主要订单屏幕,因此当我查看订单列表时,我可以点击任何订单上的“预览”按钮并查看该订单的详细信息(送货地址) ,订购的商品,运输方式,订单总成本等)出现在浮动到订单列表右侧的div中。基本上,为了省去必须进入每个订单然后回到主屏幕的麻烦。
在之前的环境(osCommerce)中,我可以通过让预览按钮执行一个Javascript函数来实现这一点,该函数接受了它的订单ID,并通过POST将其发送到一个单独的PHP脚本,该脚本根据该脚本查询数据库订单ID并在HTML块中返回相关订单信息,然后替换主订单列表页面上订单预览div的先前内容。使用此功能,我能够快速点击待处理的订单,查看订购的内容,它的去向等,而不会丢失我在列表中的位置。
到目前为止(使用vQMod对核心文件进行了所有更改),我已经在每个订单的“查看”和“编辑”按钮旁边添加了“预览”按钮/链接。该链接基本上是“onclick = getorderinfo('XXX')”,其中getorderinfo是我在该部分中定义的javascript函数,XXX是列表中该行的订单的订单ID。我还修改了布局并在订单列表右侧创建了一个空div,我可以单击我的预览按钮并获取div以显示通过POST发送到order_check.php的订单ID。但除此之外,我完全迷失了如何从数据库中检索订单详细信息并将其显示在那里。
我希望只是用一个给定的订单ID调用正确的函数或类并返回一个信息数组的问题,但它似乎比那更复杂。
有许多OpenCart mod被称为“Order Preview”,但它们都没有像我上面描述的那样做。
对于那些对OpenCart有很多经验的人来说,这听起来有点像我所描述的甚至可能吗?
答案 0 :(得分:1)
您可以使用ajax
来实现此目标。
我使用了jquery
load
和bootstrap
' modal
,您可以自定义模态的位置及其大小。
这是vqmod
文件:
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Admin quick view orders</id>
<version>1.0.0</version>
<vqmver>2.4.0</vqmver>
<author>digitcart.ir</author>
<file name="admin/view/template/sale/order_list.tpl">
<operation>
<search position="iafter"><![CDATA[title="<?php echo $button_edit; ?>" class="btn btn-primary"><i class="fa fa-pencil"></i></a>]]></search>
<add><![CDATA[
<a href="<?php echo $order['view']; ?>" class="btn btn-info quick-view">quick view</a>
]]></add>
</operation>
<operation>
<search position="before"><![CDATA[<?php echo $footer; ?>]]></search>
<add><![CDATA[
<script>
$(document).delegate('.quick-view', 'click', function(e) {
e.preventDefault();
$('#modal-quick-view').remove();
var element = this;
var url = $(element).attr('href') + ' #content',
html = '<div id="modal-quick-view" class="modal">';
html += ' <div class="modal-dialog modal-lg">';
html += ' <div class="modal-content">';
html += ' <div class="modal-header">';
html += ' <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>';
html += ' <h4 class="modal-title">' + $(element).text() + '</h4>';
html += ' </div>';
html += ' <div class="modal-body"><?php echo $text_loading; ?></div>';
html += ' </div';
html += ' </div>';
html += '</div>';
$('body').append(html);
$('#modal-quick-view .modal-body').load(url);
$('#modal-quick-view').modal('show');
$('.modal-backdrop').remove();
});
</script>
]]></add>
</operation>
</file>
</modification>
在opencart 2.3.0.2上测试