3

我想覆盖 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 文件

我也关注这个文档,但没有办法解决。

4

5 回答 5

6

Prestashop 1.5.x 自动合并默认覆盖文件和您自定义文件的module::install()功能。您只需要在您的模块文件夹中创建一个正确的层次结构:modules/your_package/override/classes/controller/FrontController.php使用您的自定义功能。如果您没有扩展名并想手动添加覆盖 - 您需要更改文件override/classes/controller/FrontController.php

于 2012-10-05T11:18:25.137 回答
2

只需删除/cache文件夹下的class_index.php 。

它带有 Presta 的 Class & Controller 文件详细信息。删除并重新加载页面后,prestashop 将自动生成具有最新更改的文件。

于 2013-12-10T12:36:48.993 回答
1

问题可能是,您的其中一个函数包含parent::nameOfFunction,您应该通过要覆盖的父函数的继承来替换函数中的父函数。

于 2014-03-25T11:19:04.753 回答
1

您尝试覆盖的函数在核心函数 init() 中调用。您应该做的是同时覆盖 init() 和 displayRestrictedCountryPage()。然后在 init 函数中使用 Controller::init() 而不是 parent::init()

于 2014-03-25T12:45:07.263 回答
0

在覆盖您想要的任何内容后,不要忘记删除缓存文件夹内容并重新创建它们,因为这会浪费我一段时间,直到在这里找到解决方案

于 2013-11-10T14:21:38.853 回答