在PrestaShop后台覆盖订单创建

时间:2017-10-05 15:09:26

标签: php prestashop prestashop-1.7

我有PrestaShop 1.7.2.0。

我需要在后台创建新订单时自定义页面。我想改进产品组合选择,所以只是页面的一部分。

在网址中,我看到Snd,所以我猜控制器是

...controller=AdminOrders&addorder...

通过文件搜索,我发现呈现页面的模板必须是

/controllers/admin/AdminOrdersController.php

我的问题是:

  1. 我应该如何自定义这些文件?最好是在我的安装上覆盖它们还是创建一个模块(如果允许的话)?
  2. 我应该在哪里放置自定义文件?我尝试了很多地方,但没有成功。我对文件夹结构感到疯狂,特别是因为它似乎随着每个PS版本而改变,并且PS文档在各种版本特定的部分上传播......
  3. 使用AdminOrdersController.php我想我可以派生类并重载我需要的那些方法。但是我想知道是否在form.tpl的情况下我应该覆盖整个文件(复制它并更改我需要的部分)。

1 个答案:

答案 0 :(得分:0)

你可以创建一个模块并在其中使用覆盖(如果你真的需要它来完成任务)。

在模块内部,您可以使用 hooks 更改Prestashop PHP流程的某些部分: http://doc.prestashop.com/display/PS17/Hooks+in+PrestaShop+1.7.x

但是没有钩子来改变controllers/orders/form.tpl的所有数据。如果任务仅与模板有关,则可以覆盖它放置文件 /override/controllers/admin/templates/orders/form.tpl

在模板更改的情况下,您无需复制所有文件,只需覆盖它: http://developers.prestashop.com/themes/smarty/parent-child-feature.html#extending-the-same-template http://developers.prestashop.com/themes/smarty/template-inheritance.html

如果您需要模板中的新数据,则可以覆盖控制器/override/controllers/admin/AdminOrdersController.php