如何在Magento中检索成功消息?
Array
(
[core] => Array
(
[_session_validator_data] => Array
(
[remote_addr] => 192.168.151.102
[http_via] =>
[http_x_forwarded_for] =>
[http_user_agent] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4
)
[session_hosts] => Array
(
[technova2] => 1
)
[messages] => Mage_Core_Model_Message_Collection Object
(
[_messages:protected] => Array
(
)
[_lastAddedMessage:protected] => Mage_Core_Model_Message_Success Object
(
[_type:protected] => success
[_code:protected] => Your review has been accepted for moderation
[_class:protected] =>
[_method:protected] =>
[_identifier:protected] =>
[_isSticky:protected] =>
)
)
[just_voted_poll] =>
[visitor_data] => Array
(
[] =>
[server_addr] => -1062692990
[remote_addr] => -1062693018
[http_secure] =>
[http_host] => technova2
[http_user_agent] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4
[http_accept_language] => en-US,en;q=0.8
[http_accept_charset] => ISO-8859-1,utf-8;q=0.7,*;q=0.3
[request_uri] => /~rahuls/sextoys/index.php/review/product/list/id/169/
[session_id] => 21bq2vtkup5m1gtghknlu1tit42c6dup
[http_referer] => http://technova2/~rahuls/sextoys/index.php/review/product/list/id/169/
[first_visit_at] => 2010-06-16 05:49:56
[is_new_visitor] =>
[last_visit_at] => 2010-06-16 06:00:00
[visitor_id] => 935
[last_url_id] => 23558
)
[last_url] => http://technova2/~rahuls/sextoys/index.php/review/product/list/id/169/
)
)
Run Code Online (Sandbox Code Playgroud)
发布评论后,我想显示消息:"您的评论已被接受审核".它出现在$ _SESSION数组中,但我该如何获取它?请帮忙.提前致谢.
Add*_*ons 10
这是你所有答案的组合.几乎任何块都适用于我:
//A Success Message
Mage::getSingleton('checkout/session')->addSuccess("Your cart has been updated successfully!");
//A Error Message
Mage::getSingleton('checkout/session')->addError("Your cart has been updated successfully!");
//A Info Message (See link below)
Mage::getSingleton('checkout/session')->addNotice("This is just a FYI message...");
//These two lines are required to get it to work
session_write_close(); //THIS LINE IS VERY IMPORTANT!
$this->_redirect('checkout/cart');
Run Code Online (Sandbox Code Playgroud)
信用归因于:
http://www.magentocommerce.com/boards/viewthread/40324/(我在哪里发布了答案)
和
以下代码适用于我:
设置消息控制器:
Mage::getSingleton('customer/session')
->addSuccess(Mage::helper('mymodule')->__('Data saved.'));
Run Code Online (Sandbox Code Playgroud)要在其中检索消息的控制器中的init消息:
$this->loadLayout();
$this->_initLayoutMessages('customer/session');
$this->_initLayoutMessages('catalog/session');
$this->renderLayout();`
Run Code Online (Sandbox Code Playgroud)检索template(.phtml)文件中的消息:
echo $this->getMessagesBlock()->getGroupedHtml();
Run Code Online (Sandbox Code Playgroud)$messages = Mage::getSingleton('core/session')->getMessages(true);
foreach($messages->getItems() as $message)
{
// Do something
$message->getText();
}
Run Code Online (Sandbox Code Playgroud)
看来你要求的东西已经存在于Magento中.一旦用户发布了有关产品的评论,默认情况下会显示"您的评论已被接受审核"消息,如app/code/core/Mage/Review/controllers/ProductController.php第188行所述(Magento 1.4. 0.1)
无论如何,如果你想显示消息(通知,成功,错误,警告),只需使用,例如在成功消息的情况下:
<?php
$message = $this->__('Your success message here');
Mage::getSingleton('core/session')->addSuccess($message);
?>
Run Code Online (Sandbox Code Playgroud)
只要页面的模板文件具有$ this-> getMessagesBlock() - > getGroupedHtml()代码,该消息将存储在会话中并自动出现在前端,这是Magento附带的所有默认phtml页面中的情况.所以你真的不必费心.
当然,在上面的例子中,你可以改变
addSuccess($message)
Run Code Online (Sandbox Code Playgroud)
通过
addError($message)或addWarning($message)或addNotice($message)依赖那种信息你要显示的.
由于消息存储在core子数组中,因此您将使用 Magento 核心消息块来检索它。在您的布局中,您应该能够看到这一行(在 page.xml 中):
<block type="core/messages" name="global_messages" as="global_messages"/>
Run Code Online (Sandbox Code Playgroud)
这意味着页面调用消息块并从该核心数组检索消息。然后,在布局中,您应该能够看到实际调用输出的行:
<?php echo $this->getChildHtml('global_messages') ?>
Run Code Online (Sandbox Code Playgroud)
这实际上回显了会话中任何消息的正常消息块。如果您找不到这些块,请将它们添加进去。如果您需要在不同的上下文中获取消息(这可能会干扰其他站点操作),请在 phtml 文件中尝试以下操作:
<?php print $this->getLayout()->createBlock('core/messages')->toHtml(); ?>
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
谢谢,乔
| 归档时间: |
|
| 查看次数: |
33199 次 |
| 最近记录: |