根据 prestashop 中的模块状态禁用覆盖的 tpl 文件

Posted

技术标签:

【中文标题】根据 prestashop 中的模块状态禁用覆盖的 tpl 文件【英文标题】:disable overrided tpl file based on module status in prestashop 【发布时间】:2014-10-20 14:08:38 【问题描述】:

我是 prestashop 新手并使用 1.6 版本。我正在创建一个模块,该模块将在将产品添加到购物车后在弹出框中显示购物车摘要。当客户点击“添加到购物车”按钮时,将触发将产品添加到购物车的过程。

所以,我想更改“添加到购物车按钮”的当前功能并将我的功能放在上面。

我在这方面搜索了很多东西,但每个人都告诉我,这可以通过覆盖 tpl 文件来实现。没关系,但我对此有疑问,如果我覆盖 tpl 文件并且在该用户禁用我的模块模块之后,那么在这种情况下,覆盖的 tpl 文件会起作用吗?禁用意味着只是禁用其功能而不是卸载模块。

所以,请任何人清除我对此的困惑,并告诉我如何更改“添加到购物车”按钮的当前功能并放置我的功能的正确解决方案,当我的模块启用时?

等待解决。

【问题讨论】:

【参考方案1】:

最好的方法是通过复制默认模板来进行覆盖,然后根据启用或禁用/卸载模块的情况从中删除/添加代码。这些只是简单的 IF,例如:

if Module::isInstalled('socialsharing')
    <div>SOCIAL</div>
else
    <div>NO SICIAL</div>
/if

如果当然不是 isInstalled() 方法,您可以使用 isEnabledForShopContext() & isEnabled()

【讨论】:

感谢您的回复。您的解决方案是可观的,但我只想知道,如果我的模块被禁用,那么覆盖的模板不应该工作。如果我的模块被禁用,要停止使用覆盖模板,我该怎么做?? 被覆盖的模板总是有效的,你没有一个机制来挂钩模块禁用和删除被覆盖的模板。做你想做的唯一方法是使用上面的解决方案。

以上是关于根据 prestashop 中的模块状态禁用覆盖的 tpl 文件的主要内容,如果未能解决你的问题,请参考以下文章

Prestashop 1.7 - 覆盖 homeslider 模块控制器(hookdisplayHeader javascript)

错误:“错误太多重定向” Prestashop 1.7

使用 Prestashop 1.6 在模块中获取产品类别名称

sql 如何在PrestaShop中自动禁用缺货产品

Prestashop 1.7 - 覆盖 Symfony 表单约束

prestashop 中的自定义价格计算