【问题标题】:Prestashop 1.6 Controller overridePrestashop 1.6 控制器覆盖
【发布时间】:2014-08-02 16:04:06
【问题描述】:

我知道如何覆盖 Prestashop 中的内容。我正在尝试覆盖类别控制器以显示自定义类别(具有不同数据的不同模板)。

我将 CategoryController 复制到 /modules/mymodule/override/controllers/front 并且我在 /modules/mymodule/controllers/front/display.php 有模块控制器,并且有 initContent 方法。

如何在 display.php 控制器中使用修改后的 CategoryController?

【问题讨论】:

    标签: php prestashop


    【解决方案1】:

    您已经创建了两个不同的控制器:

    1. 重写 CategoryController
    2. 模块控制器

    在 2. 中使用 1. 是无意义的 - 这意味着您在语义上做了错误的事情。如果您想使用不同的模板显示自定义类别,您只需要覆盖 CategoryController,并设置正确的模板(如果您将使用两个不同的模板来显示类别)。如果您只需要一个模板,只需覆盖控制器并更改主题模板即可。

    【讨论】:

    • 那么,如何在模块中使用覆盖的 CategoryController 呢?我想在domain.com/module/mymodule/category 上获得 CategoryController::initContent() 的结果
    • 我的意思是...我将原始 CategoryController 复制到 mymodule/controllers/front/category.php,我在 category.php 中进行了更改。因此,我可以访问 /module/mymodule/category?id_category=1 并查看默认类别 tpl 以及来自我修改的类别控制器 (category.php) 的数据。可能吗? Category.php 将被修改以从某些 API 获取产品。 Templete 不会改变,模块将独立于模板。
    • 是的,你可以这样做。只是不要忘记正确命名类并扩展 ModuleFrontController。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多