2017-10-05 53 views
0

我有PrestaShop 1.7.2.0。在PrestaShop后台创建替代订单

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

在URL我看到...controller=AdminOrders&addorder...,所以我猜控制器

/controllers/admin/AdminOrdersController.php 

随着文件搜索,我发现呈现页模板必须

/admin753xeprta/themes/default/template/controllers/orders/form.tpl 

我的问题是:

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

回答

0

您可以创建一个模块并在其中使用覆盖(如果您真的需要它的话)。

里面一个模块就可以改变的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

+0

Thanks @Indrė,我试图将自定义文件放在您建议的位置,但似乎PrestaShop不会受到这些覆盖的影响。我也清理/应用程序/缓存。还有什么要做的吗? – bluish

+0

你究竟放置什么以及在哪里? –

+0

我将'/ admin/themes/default/template/controllers/orders/form.tpl'复制到'/ modules/mymodule/override/controllers/admin/templates/orders/form.tpl'中,并改变了我感兴趣的部分。 我创建了文件'/ modules/mymodule/override/controllers/admin/AdminOrdersController.php',子类化原始类并覆盖我感兴趣的那些方法。 现在我想知道如果你的意思是覆盖根文件夹('/ override')或覆盖文件夹,但在模块('/ modules/mymodule/override')中。我理所当然地认为他们都是压倒一切的正确场所,我错了吗?谢谢@Indrė! – bluish