0

我正在开发一个基于 Prestashop (1.5 RC) 最新测试版的项目,因为我需要这个版本中的一些新东西。

在投入生产之前,网站当然会在发布时更新到稳定的 1.5 版本,并计划与以下稳定版本保持同步。

由于设计有点具体,我必须创建自定义挂钩来放置模块。困扰我的是我的模块(尤其是 Prestashop 附带的“默认”模块)在逻辑上没有允许它们放置在我创建的钩子上的所需方法。

我将这些方法添加到他们的 PHP 文件中,但是当 Prestashop(或任何相关模块)更新时,我的更改将被丢弃,我将不得不重新编写它。

有没有办法让这些模块能够放置在我想要的任何钩子上,而无需直接修改它们自己的代码?AFAIK 你不能覆盖一个模块的 PHP 文件,你只能用 TPL、CSS 和 JS 来做。

非常感谢任何帮助。我在 Prestashop 自己的论坛上对相关主题的搜索让我认为你根本无法做到这一点......

4

1 回答 1

2

我通过使用 smarty 插件在主题中的任意位置调用模块钩子函数来解决添加钩子的问题。我在我的博客中写了一篇文章,可能有助于将它们称为Prestashop 插件。显然,代码可以扩展为包含传递附加参数等内容。一旦实现,您可以在 tpl 文件中执行以下操作:

显示(即调用)“Home Featured”模块的 hookHome 函数

{plugin module='homefeatured' hook='home'}

显示设置变量的值(方便保存更改的硬编码值!)

{psconfig item='PS_SHOP_PHONE'}

最后(就示例而言)显示 CMS 页面的内容:

{cmspage id='1'}

创意商店开发者的可能性是无穷无尽的;)

于 2012-07-31T22:22:47.037 回答