Magento CMS中的全局消息

时间:2011-03-04 17:22:02

标签: magento

我已将mxpert登录添加到我的Magento网站的主页CMS页面。我想将Global Messages加载到此登录名,以便在客户登录时出现错误时向客户显示。

由于

2 个答案:

答案 0 :(得分:7)

使用此:

<?php echo
    Mage::app()->getLayout()->getMessagesBlock()->
        setMessages(Mage::getSingleton('customer/session')->getMessages(true))->getGroupedHtml() 
?>

答案 1 :(得分:1)

默认情况下,Magento提供迷你登录功能,您可以随时使用,无论用户当前在何处。所以在所有页面(包括CMS页面)中,用户都可以使用迷你登录功能登录。

现在万一发生任何错误,Magento默认会将用户重定向到主登录页面,在那里将向用户显示实际错误。因此,您无需更改正在开发或更改的Magento主题的任何基本流程。

希望它有所帮助。


修改: -
Magento(默认情况下)执行的操作是将所有消息(成功/错误/警告)存储在特定会话数组中。它被称为每个&amp;使用以下代码行的前端的每个页面: - <?php echo $this->getChildHtml('global_messages') ?>
您可以在文件夹“1column.phtml”中定义的几乎所有页面布局(例如“2columns-left.phtml”,“app/design/frontend/base/default/template/page/”和“依此类推”)中找到上述行。此外,上面一行代码暗示在一个Layout XML文件中应该有一个名为“global_messages”的块,除非它被错误地篡改。

现在,上述简报对于了解Magento系统如何显示任何类型的消息是必要的。因此,只要前端页面中显示任何这些消息(如果存在),相关会话数组就会从其数组中删除/清除这些消息元素。
但主要的是消息应该显示在正确的页面中,它应该在哪里。如果没有,那么每当Magento找到显示消息的正确位置时,它就会显示(在某个不适当的页面中)。 我想这也是你发生的事情。

因此,如果您能查看正确的模板文件,那将会更好。相应的相关布局页面(在“app/design/frontend/base/default/template/page/”文件夹中列出的页面中,如“1column.phtml”,“2columns-left.phtml”等等,以下代码: -
<?php echo $this->getChildHtml('global_messages') ?>