2011-03-04 88 views

回答

7

使用此:

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

默认情况下,Magento的提供迷你登录功能,您可以随时使用,不论在哪里用户当前进入。因此,在所有页面(包括CMS页面)中,用户可以使用迷你登录功能登录。

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

希望它有帮助。


编辑: -
Magento的呢(默认)是它存储所有消息(成功/错误/警告)在一个特定的会话阵列什么。它被调用每个&前端的每一页使用以下代码行: - <?php echo $this->getChildHtml('global_messages') ?>
您可以在文件夹“app/design/frontend/base/default/template/page/”中定义的几乎所有页面布局(如“1column.phtml”,“2columns-left.phtml”,&等等)中找到上述行。此外,上面的代码行暗示在其中一个布局XML文件中应该有一个名为“global_messages”的块,除非它被错误地篡改。

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

因此,这将是更好,如果你能请出合适的模板文件&相应的相关布局页(其中包括“2columns-left.phtml” &等文件夹“app/design/frontend/base/default/template/page/”喜欢“1column.phtml”中列出的网页)的以下代码: -
<?php echo $this->getChildHtml('global_messages') ?>

+0

说我不看消息的错误在我的CMS页面,但是如果我在登录放一个错误,刷新和鸵鸟政策看到任何东西,但我去的问题注册,我看到错误队列,因为在这个页面加载全局消息。有任何想法吗??? – davidselo 2011-03-04 17:56:11

+0

@davidseo - 请检查我上面编辑的答案。 – 2011-03-06 00:44:11

+0

我明白这一点,但我为这个页面创建了新模板,模板名称welcome.phtml与另一个页面不同,因此决定制作此页面。而这个页面是在CMS中创建的,我分配了我的新模板,但是这个页面没有布局,我怎么能创建这个?我尝试在cms.xml中添加全局消息块,但不工作。感谢 – davidselo 2011-03-09 12:06:14