2011-03-04 89 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