其实我是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
但它对我不起作用:(
我该怎么办呢......
有人帮我解决了这个问题..
答案 0 :(得分:0)
您可以在主文件安装功能中使用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.
}
谢谢,
答案 1 :(得分:0)
我不确定你将如何解决自定义模块的部分(可能在未配置模块时,您将仅保留定义的覆盖类,并且在配置时,您将在其中进行更改) ...核心文件的更改应该像这样 - 对于Product类:
定义班级屁股:
class Product extends ProductCore
进行更改。 (覆盖功能或添加新功能)
答案 2 :(得分:0)
您不能覆盖src
文件夹中的类
PrestaShop 1.7在其新版本中引入了名称空间的使用 架构,总之,任何具有名称空间的东西都不能 覆盖。但是,仍然可以覆盖旧式体系结构。 但总的来说,我们建议您不要覆盖代码。最好是 扩展它。另外,目前在 基于Symfony的页面(即“产品”页面和“模块”页面)。
如果您要覆盖PrestaShop的类和控制器,则可以像以前的版本中一样
http://doc.prestashop.com/display/PS16/Overriding+default+behaviors