Module 覆盖并使用prestashop模块中的前控制器功能[1.6.x.x]
我想编辑并添加功能到prestashop商店定位器页面。 Prestashop的文档不是很清楚,我想知道是否可以在自定义模块中实现控制器。 我想创建一个模块,它能够扩展StoreFrontController及其功能,而无需从头开始。 可能吗?你有一些文件给我吗 一个初学者,Module 覆盖并使用prestashop模块中的前控制器功能[1.6.x.x],module,controller,extends,prestashop-1.6,Module,Controller,Extends,Prestashop 1.6,我想编辑并添加功能到prestashop商店定位器页面。 Prestashop的文档不是很清楚,我想知道是否可以在自定义模块中实现控制器。 我想创建一个模块,它能够扩展StoreFrontController及其功能,而无需从头开始。 可能吗?你有一些文件给我吗 一个初学者, 最好。因为您有很多需求,所以必须重写类storescocontroller.php 您的模块文件夹应如下所示: /mymodule /mymodule.php /config.xml /overri
最好。因为您有很多需求,所以必须重写类
storescocontroller.php
您的模块文件夹应如下所示:
/mymodule
/mymodule.php
/config.xml
/override
/controllers
/front
StoresController.php
/views
/templates
/front
stores.tpl
在storescoontroller.php
中,您必须重写initContent()
:
您可以从覆盖前端控制器开始,如
`"/modules/mymodule/override/controllers/front/StoresController.php" and in this fine add class "class StoresControllerCore extends FrontController {
public function initContent()
{
parent::initContent();
//here do whatever you like
}
}"
尽管您必须了解编码才能继续进行。对不起,我的prestashop版本是1.6.1.5。您希望添加什么样的功能?如果您想添加更多信息,过程将与更改数据不同。我想添加两个功能:*第一个也是最重要的,获取所有门店信息,为每个门店创建专用页面。例如:您可以找到最近的商店,然后单击要重定向到cms页面的名称。*第二个功能,为商店指定一个或多个类别。示例:要搜索最近销售该类别产品的商店,请感谢您的时间和建议。这很容易理解。我还有一个问题,我不熟悉prestashop,所以我想了解。如果我在模块中覆盖此控制器,它是否正常工作?我的意思是,只有我的更改会修改控制器的行为,其余的将像我没有更改一样工作?!你说的正常是什么意思?您的覆盖扩展了Core StoresControllerCore。当Prestashop加载StoresController时,它将首先查找覆盖并找到您的覆盖。然后它会像任何控制器类一样处理它。“我的意思是,只有我的更改会修改控制器的行为,其余的将像我什么都没有更改一样工作?!”就是这样。您可以在重写中按照您想要的方式更改控制器,但是您没有更改的任何方法都将正常运行。在我的示例中,我只声明了一个新的模板文件。因此,它现在将加载模块文件夹中的stores.tpl,而不是加载主题文件夹中的默认“stores.tpl”。因此,您需要复制default stores.tpl并在模块中修改它。稍后,如果您想与其他商店共享此模块,他们将能够在/theme/theme/modules/your_module/stores.tpl
中更改您的模板文件。默认的/theme/theme/stores.tpl
将不再使用。如果您有任何其他问题,请随时将其发布在一个新的问题中,标记为Prestashop,我将很高兴再次帮助您。谢谢!Florian给了我一个解决方案,效果很好!