2017-10-05 76 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