Prestashop管理员命令控制器

时间:2014-11-12 09:01:49

标签: admin prestashop

我想问一下这个控制器。

在过去的1.5版本中,我可以在admin / tabs中找到它并添加其他功能。

在1.6版本中,我找不到任何管理类文件。所以我应该编辑controllers / admin / AdminOrdersController是吗?

 elseif(isset($_POST['submitInvoice'])){
            if ($this->tabAccess['edit'] === '1')
            {
                mysql_query('UPDATE `'._DB_REFIX_.'orders` SET `invoice_number` = \''.$_POST['invoice_number'].'\',`order_date` = \''.$_POST['order_date'].'\', `changed_invoice`=1, `manager`=\''.$cookie->firstname.' '.$cookie->lastname.'\', `changedStatus`= \''.$_POST['changedStatus'].'\' WHERE `id_order` = '.$_GET['id_order']);
            }
        }

我添加此代码以更新发票编号或订单日期等一些值。但是我不能更新这个。得到相同的日期和数字。这是更新的坏方法还是什么?

1 个答案:

答案 0 :(得分:1)

  • 如果可能,您应该始终使用模块和挂钩修改PrestaShop逻辑
  • 如果您需要覆盖一个函数并且没有合适的钩子,则应使用覆盖:override/controllers/admin/AdminOrderController.php。此文件的内容应如下所示:AdminOrderController extends AdminOrderControllerCore。如果你不确定我的意思,你应该尝试在overide文件夹中搜索任何覆盖类。
  • 您的代码非常不安全。您至少应该使用Db::getInstance()->execute($sql);
  • 您的代码可能无法正常工作,因为您在函数中间某处编写了值,而Order是一个对象,这意味着在将值写入数据库后可能会保存Order对象。保存订单对象时,它会覆盖您的值