如何解决是否有可能覆盖magento生成的错误或成功消息?
| 是否有可能覆盖magento系统生成的错误/成功消息? 例如,如果我们添加产品,则成功消息为 \“笔记本电脑已添加到您的购物车中。 谢谢, 巴兰解决方法
添加项目后,很容易将自定义消息添加到堆栈中。为
checkout_cart_add_product_complete
添加一个事件侦听器,它执行以下操作:
public function observeAddToCart($observer) {
$product = $observer->getEvent()->getProduct(); // you may need to play with this
$session = Mage::getSingleton(\"checkout/session\")->addSuccess($message);
$message = Mage::helper(\"yourmodule\")->__(\'%s,you added %s to your shopping cart.\',Mage::helper(\'core\')->htmlEscape($product->getName()));
$session->addSuccess($message);
}
剩下的问题就是删除旧消息。我现在看到的最接近的结果是,您可以通过检索命令清除所有其他消息。因此,您可以像下面这样清除Magento设置的消息:
Mage::getSingleton(\"checkout/session\")->getMessages(true);
但是,在添加了Magento的消息后,您需要执行此操作。希望能给您一个开始!
谢谢,
乔
,我已经编写了一个帮助程序功能,该功能使您可以搜索特定的消息,并选择删除该消息(如果找到)。有点令人失望的是它在核心中不可用。
/**
* Searches messages for @param $string.
* Will remove the message if $remove is true.
*
* @param string $string
* @param boolean $remove: false
* @param string $which: core/session
* @return true|false,found|not found
* @access public
*/
public function message_search( $string,$remove = false,$which = \'core/session\' ) {
$found = false;
$messages = Mage::getSingleton( $which )->getMessages();
foreach( $messages->getItems() as $message )
if( stristr( $message->getText(),$string ) ) {
$found = true;
if( $remove ) $message->setIdentifier( \'this_message_will_be_removed\' );
}
if( $remove ) $messages->deleteMessageByIdentifier( \'this_message_will_be_removed\' );
return $found;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。