Php Prestashop 1.6覆盖控制器
我试图通过覆盖隐藏仪表板上的“帮助”按钮。但是没有使用覆盖。所以我想知道我做错了什么?为什么不使用覆盖 我在:Php Prestashop 1.6覆盖控制器,php,controller,overriding,prestashop,Php,Controller,Overriding,Prestashop,我试图通过覆盖隐藏仪表板上的“帮助”按钮。但是没有使用覆盖。所以我想知道我做错了什么?为什么不使用覆盖 我在:classes/controller/AdminController.php中找到了它。然后我创建了一个新文件:override/classes/controller/AdminController.php 我无法使覆盖生效,因此我尝试通过以下方式检查是否考虑了覆盖: <?php class AdminControllerCoreOverride extends AdminCont
classes/controller/AdminController.php
中找到了它。然后我创建了一个新文件:override/classes/controller/AdminController.php
我无法使覆盖生效,因此我尝试通过以下方式检查是否考虑了覆盖:
<?php
class AdminControllerCoreOverride extends AdminControllerCore
{
echo 'askdjfkdjfksl';
}
?>
但什么也没发生。我删除了缓存:index_cache,并且在性能菜单中未关闭覆盖。在index_cache.php
中,我找到了AdminController,但覆盖是false
PS:使用Prestashop 1.6如果手动创建覆盖文件,则必须删除文件
缓存/class_index.php
,覆盖文件才能工作
然后,在override/classes/controller/AdminController.php
中,必须重写如下函数:
<?php
class AdminController extends AdminControllerCore
{
public function initPageHeaderToolbar()
{
Your code
}
}
如果手动创建覆盖文件,则必须删除文件缓存/class_index.php
,覆盖文件才能工作
然后,在override/classes/controller/AdminController.php
中,必须重写如下函数:
<?php
class AdminController extends AdminControllerCore
{
public function initPageHeaderToolbar()
{
Your code
}
}
我也面临类似的问题(PS7)。在我的例子中,问题是由文件权限引起的。
Prestashop需要对要覆盖的文件具有写入权限。否则将忽略该文件,而不会显示任何警告/错误消息。您可以在没有帮助的情况下疯狂地删除class_index.php文件
此外,出于某种原因,每当我对超越控制器进行任何更改时,我都必须重置模块
顺便说一句,在PS7中,缓存索引位于/app/cache/dev文件夹(和/app/cache/prod文件夹)下。我遇到了类似的问题(在PS7中)。在我的例子中,问题是由文件权限引起的。
Prestashop需要对要覆盖的文件具有写入权限。否则将忽略该文件,而不会显示任何警告/错误消息。您可以在没有帮助的情况下疯狂地删除class_index.php文件
此外,出于某种原因,每当我对超越控制器进行任何更改时,我都必须重置模块
顺便说一句,在PS7中,缓存索引位于/app/cache/dev文件夹(和/app/cache/prod文件夹)下。您可以尝试以下方法:
将您的类名从AdminCoreControllerOverride更新为AdminCoreOverrideController
和AdminControllerCore到AdminController
<?php
class AdminCoreOverrideController extends AdminController
{
public function init() {
parent::init();
}
}
您可以尝试以下方法:
将您的类名从AdminCoreControllerOverride更新为AdminCoreOverrideController
和AdminControllerCore到AdminController
<?php
class AdminCoreOverrideController extends AdminController
{
public function init() {
parent::init();
}
}
这是一种非常糟糕的测试重写的方法,实际上我甚至不确定在类定义中使用echo语句是否有效。您可能应该在defines.inc.php
中打开错误报告以查看错误。至于覆盖,你可以使用tot-override\uuu-construct
来检查它是否工作。这是一种非常糟糕的测试覆盖的方法,实际上我甚至不确定在类定义中使用echo语句是否有效。您可能应该在defines.inc.php
中打开错误报告以查看错误。至于覆盖,您可以使用tot override\u construct
,查看其是否工作。