簡體   English   中英

使用模塊prestashop覆蓋核心文件

[英]Override core files using module prestashop

其實我是prestashop的新手,

我在這些位置的以下文件中進行了更改

classes/Product.php

src/PrestaShopBundle/Controller/Admin/ProductController.php

src/PrestaShopBundle/Resources/views/Admin/Product/form.html.twig

配置此模塊后,我已經創建了一個名為“ 我的工具包”的模塊,所有這些更改均應正常進行。

為此,我在my_kit模塊中創建了override文件夾, my_kit上述所有文件放入此my_kit\\override路徑。

喜歡

my_kit\\override\\classes/Product.php

my_kit\\override\\src/PrestaShopBundle/Controller/Admin/ProductController.php

my_kit\\override\\src/PrestaShopBundle/Resources/views/Admin/Product/form.html.twig

但這對我不起作用:(

我該怎么辦..

有人幫助我。

您可以在如下所示的主文件安裝功能中使用php默認復制功能。

public function install()
{

copy(_PS_ROOT_DIR_."/modules/your module name/classes/Product.php",_PS_ROOT_DIR_."/override/classes/Product.php");

unlink(_PS_ROOT_DIR_."/cache/class_index.php");//because you need to delete this file after override

//Do same like this all other file.


}

謝謝,

我不太確定如何使用自定義模塊處理零件(也許當未配置模塊時,將只保留覆蓋類,而在配置覆蓋類時,將所做的更改放在那里)。核心文件中的更改仍應按以下方式進行-對於Product類:

  1. 在(basefolder)/override/classes/Product.php中制作一個新文件
  2. 定義類的屁股:

     class Product extends ProductCore 
  3. 做你的改變。 (替代功能,或添加新功能)

您無法覆蓋src文件夾中的類

PrestaShop 1.7在其新體系結構中引入了名稱空間的使用,總之,任何具有名稱空間的內容都不能被覆蓋。 但是,仍然可以覆蓋舊式體系結構。 但總的來說,我們建議您不要覆蓋代碼。 最好將其擴展。 此外,當前在基於Symfony的頁面(即“產品”頁面和“模塊”頁面)中禁止替代。

http://build.prestashop.com/news/prestashop-1-7-faq/#is-there-any-change-planned-to-the-override-system

如果要覆蓋PrestaShop的類和控制器,則可以像以前的版本中那樣進行操作

http://doc.prestashop.com/display/PS16/Overriding+default+behaviors

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM