例如,以下操作将添加一条将插入页面的消息:
- 单击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()函数并添加消息后,我们如何修改或删除这些消息?
答案 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);
更具体地说,您可以使用以下内容分别从core
和customer
会话中删除邮件:
Mage::getSingleton('core/session')->getMessages(true);
Mage::getSingleton('customer/session')->getMessages(true);
答案 2 :(得分:0)
对于addtocart消息,也可以通过转到管理面板来关闭它。
正如@ s-hunter上面所说,任何人都可以告诉在哪里找到关闭它的设置。