实际上我是Prestashop的新手,
,我在这些位置有以下文件的更改
classes/Product.php
src/PrestaShopBundle/Controller/Admin/ProductController.php
src/PrestaShopBundle/Resources/views/Admin/Product/form.html.twig
我创建了一个名为的模块,我的套件在配置此模块时,所有这些更改都应起作用。如果设置了模块,则这些更改不应在前端影响(我的意思是在管理面板中(
为此,我已经创建了 override
my_kit
模块中的文件夹,并将上述所有文件放入此my_kitoverride
路径中。
喜欢
my_kitoverrideclasses/Product.php
my_kitoverridesrc/PrestaShopBundle/Controller/Admin/ProductController.php
my_kitoverridesrc/PrestaShopBundle/Resources/views/Admin/Product/form.html.twig
,但对我不起作用:(
我应该如何做这个..
有人帮助我。
您可以在主文件安装功能中使用PHP默认 copy 函数如下。
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.
}
谢谢,
我不确定如何使用自定义模块在零件周围工作(也许是在未配置模块时,您将仅定义了覆盖类,以及它配置了,您将把更改放在那里(...仍然应该像这样完成核心文件的更改 - 对于产品类:
- 在(BaseFolder(/override/classes/product.php 中制作一个新文件
定义类屁股:
class Product extends ProductCore
进行更改。(覆盖功能,或添加新功能(
您不能从 src
文件夹中覆盖类
Prestashop 1.7引入了名称空间的使用 架构,简而言之,任何具有名称空间的事物 覆盖。不过,遗产架构仍然可以被覆盖。 但总的来说,我们建议不要覆盖代码。最好 扩展它。此外,目前禁止覆盖 基于Symfony的页面(即产品页面和模块页面(。
http://build.prestashop.com/news/prestashop-1-7-faq/#is-there-any-any-any-change-planned-to-the-the-override-system
如果要覆盖Prestashop的类和控制器,则可以像以前的版本一样进行
http://doc.prestashop.com/display/ps16/overriding Default behaviors