2013-01-07 40 views

回答

3

见Magento的会话模型,即核心/会话,客户/会话等

要添加,您可以使用例如消息:

Mage::getSingleton('core/session')->addSuccess($message); // Add green success message 
Mage::getSingleton('core/session')->addError($message); // Add red error message 
Mage::getSingleton('core/session')->addNotice($message); // Add yellow notice message 

模板文件有一个呼叫以下将呈现会话消息。看看这个:

<?php echo $this->getMessagesBlock()->getGroupedHtml() ?> 

消息也可以手动检索,像这样:

$messages = Mage::getSingleton('core/session')->getMessages(true); 
foreach($messages->getItems() as $message) 
{ 
    $message->getText(); 
    //... 
} 
+0

工作就像一个魅力。消息正在该块中显示。但是,我正在从Observer执行(在添加到购物车事件之前收听自定义),除了输出该自定义消息外,我还需要停止添加到购物车操作。我的猜测是Mage :: throwException,但是抛出了一些令人讨厌的错误消息。如果之前使用Mage :: throwException,则会添加添加到购物车,除了绕过消息并将用户重定向到异常错误页面。有什么想法吗?几乎在那里:) –

+0

你在哪里放置自定义事件?看看Mage_Checkout_CartController的addAction()。理想情况下,您希望检测错误并在添加项目和保存报价前使用_goBack()功能重定向用户。 看看这里的“开箱”添加到购物车事件您可能能够挂钩到的列表:http://stackoverflow.com/a/12531332/651529 – drj201

+0

我创建了一个观察者,分派一个自定义事件或多个,如果我愿意。我会看看提供的链接。感谢你的帮助! –