【问题标题】:Magento - Global messages disappeared from Cart page, showing on CMS pages insteadMagento - 全局消息从购物车页面消失,而是显示在 CMS 页面上
【发布时间】:2012-08-17 10:56:25
【问题描述】:

所以在过去的几天里,Magento CE 的开发安装中出现了一个奇怪的错误。

全局消息(例如,将产品添加到购物车时)已从购物车页面中消失(尽管代码在模板中,并且上周有效),现在显示在 CMS 页面和主页上(同样,上周不是这样,我已经确定代码不在模板中)

我在购物车模板中尝试显示消息的代码:

// This code was in the file originally, worked, but no its broken
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>

// Added this in today to see if it worked, no dice
<?php echo $this->getChildHtml('global_messages') ?>

【问题讨论】:

  • 只是为了确定——你对布局做了什么吗?也许一些新布局会删除 global_messages 块?

标签: php magento


【解决方案1】:

消息出现在主页和 cms 页面上的原因是 Magento '保留'所有全局消息,直到它有机会将它们吐出给用户。

因此,由于您没有在此模板上输出它,它会在第一个机会(CMS 页面或主页)输出它。

你需要吐出消息的代码是:

Mage::app()->getLayout()->getMessagesBlock()->getMessages()->getGroupedHtml();

希望这对您有所帮助。

逾越节

【讨论】:

  • 知道为什么购物车没有在购物车上吐出消息吗?我什至尝试了默认模板,但也没有在购物车上显示消息。我找到了一些要添加的代码,现在消息再次显示,但是当我导航到 CMS 页面时它们仍然存在(从 phtml 文件中删除了全局消息代码 - 非常奇怪)
  • 显示消息后可能需要刷新/删除消息
  • 当我删除了页面模板文件中与全局消息相关的所有代码时,我无法理解消息在 CMS 页面上的显示方式。
  • 它可能在模板的子块中(或在父块中)调用。另一种选择是需要刷新缓存。你也可以考虑和观察者可能会刷新输出
  • 我搜索了基本模板并挖掘了“$this->getChildHtml('global_notices')”和“$this->getChildHtml('global_messages')”,所有实例都被注释掉了模板。然而,产品已添加到购物车的消息仍然出现在 CMS 页面上。缓存已通过 FTP 和后端控件手动清除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多