如何在Magento中修改或删除addSuccess消息?

时间:2013-09-12 18:05:09

标签: magento

例如,以下操作将添加一条将插入页面的消息:

- 单击addtocart按钮时,将显示一条消息,说明产品是否成功添加。 代码在app / code / core / Mage / Checkout / controllers / CartControllers.php

$message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->escapeHtml($product->getName()));
$this->_getSession()->addSuccess($message);

- 提交产品评审时,会显示一条消息,表示评审已被接受审核。 代码在app / code / core / Mage / Review / controllers / ProductController.php

$session->addSuccess($this->__('Your review has been accepted for moderation.'));

以上两个只是示例,还有更多其他类似的消息显示在某些操作上。

我知道如何覆盖它,更改或删除邮件。对于addtocart消息,也可以通过转到管理面板来关闭它。

我相信有一种更好的方法来修改这些消息,而不是创建一个模块并覆盖该函数只是为了修改消息或删除它。

有谁知道修改或删除这些addSuccess消息的更好方法? 在调用addSuccess()函数并添加消息后,我们如何修改或删除这些消息?

3 个答案:

答案 0 :(得分:5)

当然有更好的方法; D

查看您的app/locale/en_US文件夹(或您要编辑的任何语言)。在那里你会找到一系列带翻译的CSV文件。

每次看到echo $this->_('Something Here');时,都表示这些CSV文件中有翻译。这取决于当前的命名空间,因此对于Checkout消息,您首先要查看Mage_Checkout.csv

使用您喜欢的文本编辑器打开并查找以下内容:
%s was added to your shopping cart.,%s was added to your shopping cart.

现在,将逗号后的行更改为您希望的行:
%s was added to your shopping cart.,We just added %s to your cart!

或者,您可以通过删除逗号后的所有内容将其设为空白:
%s was added to your shopping cart.,

%s表示使用的变量,它作为_()函数中的第二个参数传递。

答案 1 :(得分:1)

这应该会删除会话中的所有成功或错误消息。

$this->_getSession()->getMessages(true);

更具体地说,您可以使用以下内容分别从corecustomer会话中删除邮件:

Mage::getSingleton('core/session')->getMessages(true);
Mage::getSingleton('customer/session')->getMessages(true);

答案 2 :(得分:0)

  

对于addtocart消息,也可以通过转到管理面板来关闭它。

正如@ s-hunter上面所说,任何人都可以告诉在哪里找到关闭它的设置。