我试图通过覆盖隐藏仪表板上的'帮助'按钮。但是没有使用覆盖。所以我想知道我做错了什么?为什么不使用覆盖?
我在classes/controller/AdminController.php
找到了它。然后我创建了一个新文件:override/classes/controller/AdminController.php
。
我无法使覆盖工作,所以我试着通过以下方式检查它是否被考虑在内:
<?php
class AdminControllerCoreOverride extends AdminControllerCore
{
echo 'askdjfkdjfksl';
}
?>
但什么都没发生。我删除了 cache:index_cache ,并且在性能菜单中没有关闭覆盖。在index_cache.php
我找到 AdminController ,但覆盖为false。
PS:使用 Prestashop 1.6
答案 0 :(得分:0)
如果手动创建覆盖文件,则必须删除文件cache/class_index.php
才能使覆盖文件生效。
然后,在override/classes/controller/AdminController.php
中你必须覆盖这样的函数:
<?php
class AdminController extends AdminControllerCore
{
public function initPageHeaderToolbar()
{
Your code
}
}
您无需将?>
放在此文件的这一端。
答案 1 :(得分:0)
我遇到了类似的问题(PS7)。在我的情况下,问题是由文件权限引起的。 Prestashop需要对要覆盖的文件执行permision。否则将忽略该文件而不显示任何警告/错误消息。你可以毫无帮助地删除class_index.php文件。
另外,出于某种原因,我必须在我的覆盖控制器中进行任何更改时重置我的模块。
BT7在PS7中,cache_index位于/ app / cache / dev文件夹(和/ app / cache / prod文件夹)下。
答案 2 :(得分:0)
你可以试试这个:
将您的班级名称从 AdminCoreControllerOverride 更新为 AdminCoreOverrideController
和 AdminControllerCore 到 AdminController
<?php
class AdminCoreOverrideController extends AdminController
{
public function init() {
parent::init();
}
}
然后您可以通过以下链接在浏览器中进行测试:
http://localhost/YOUR_ADMIN_DIR/index.php?controller=AdminCoreOverride