我想覆盖prestashop 1.5核心文件FrontController.php
以覆盖override\classes\controller
文件夹,但它没有加载我的覆盖文件夹文件。
<?php
class FrontController extends FrontControllerCore
{
/* Display a specific page if the user country is not allowed */
protected function displayRestrictedCountryPage() {
}
}
任何机构都知道如何在1.5
中覆盖核心prestashop文件我也遵循这个document但无法解决。
答案 0 :(得分:6)
Prestashop 1.5.x自动合并默认覆盖文件和module::install()
功能上的自定义文件。您只需要在模块文件夹中创建一个正确的层次结构:modules/your_package/override/classes/controller/FrontController.php
并使用您的自定义功能。
如果您没有扩展程序并希望手动添加替代,则需要更改文件override/classes/controller/FrontController.php
答案 1 :(得分:2)
只需删除 / cache 文件夹下的 class_index.php 即可。
它带有Presta的Class&amp; Controller文件细节。删除并重新加载页面后,prestashop将自动生成包含最新更改的文件。
答案 2 :(得分:1)
问题可能是,你的一个函数包含parent::nameOfFunction
,你应该通过你想要覆盖的父函数的继承来替换函数中的parent。
答案 3 :(得分:1)
您尝试覆盖的函数在核心函数init()中调用。你应该做的是覆盖init()和displayRestrictedCountryPage()。然后在init函数内部使用Controller :: init()而不是parent :: init()
答案 4 :(得分:0)
在覆盖任何你想要的内容之后不要忘记删除缓存文件夹内容并重新创建它们,因为这会浪费我一段时间直到找到解决方案here