根据 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.6 在模块中获取产品类别名称