3

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

-点击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() 函数并添加消息后,我们如何修改或删除这些消息?

4

3 回答 3

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变量,它作为函数中的第二个参数传递_()

于 2013-09-12T18:42:33.077 回答
1

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

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

更具体地说,您可以使用以下内容分别从会话core中删除消息:customer

Mage::getSingleton('core/session')->getMessages(true);
Mage::getSingleton('customer/session')->getMessages(true);
于 2016-05-09T17:30:10.483 回答
0

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

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

于 2016-03-02T07:27:57.297 回答