尝试在OpenCart

时间:2017-03-27 17:08:34

标签: php opencart

免责声明:首次使用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有很多经验的人来说,这听起来有点像我所描述的甚至可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用ajax来实现此目标。

我使用了jquery loadbootstrap' 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">&times;</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上测试