Tôi ajaxifying cửa hàng Magento của tôi, và khá nhiều tất cả mọi thứ đang diễn ra thuận buồm xuôi, ngoại trừ một điều:Sử dụng hệ thống thông điệp built-in Magento trong điều khiển tùy chỉnh + hành động
Vấn đề: tôi dường như không thể để truy xuất và hiển thị khối tin nhắn trong các câu trả lời cho các yêu cầu AJAX.
Giải thích: tôi đang nói về các màu đỏ (hoặc xanh lá cây, khi đó là một thông báo thành công) thanh mà dường như người sử dụng sau khi thử một cái gì đó mà không làm việc (ví dụ như bổ sung thêm mặt hàng vào giỏ hàng hơn cổ phiếu cho phép). Khi trả lời các yêu cầu ajax nhất định tạo ra lỗi, tôi muốn hiển thị đánh dấu thư thông qua một mẫu trống rỗng, được sử dụng để trả lời cho yêu cầu ajax này. Khi không có lỗi xảy ra, một phản ứng phù hợp khác được trả về.
Những điều tôi đã cố gắng: Dưới đây là một vài dòng mã PHP mà tôi đã cố gắng sử dụng:
$_messages = Mage::getSingleton("core/session")->getMessages();
echo $this->getLayout()->createBlock("core/messages")->setMessages($_messages)->getGroupedHtml();
echo $this->getMessagesBlock()->getGroupedHtml();
echo Mage::app()->getLayout()->getMessagesBlock()->
setMessages(Mage::getSingleton('customer/session')->getMessages(true))->getGroupedHtml();
Mage::log
ging các dữ liệu cho thấy các bộ sưu tập thư trống.
Đây là bố cục XML (Tôi đang sử dụng $this->loadLayout('ajax_msg_handle');
từ bộ điều khiển) :.
<ajax_msg_handle>
<block type="core/template" name="error.root" output="toHtml" template="page/html/ajax-messages.phtml">
<block type="core/messages" name="global_messages" as="global_messages"/>
<block type="core/messages" name="messages" as="messages"/>
</block>
</ajax_msg_handle>
Cũng là một điểm chi tiết, tôi đã xem xét những điều sau đây:
Hầu hết các hành động, giống như của giỏ hàng "xóa", "chỉnh sửa" và trang sản phẩm của "thêm vào giỏ hàng", đầu tiên chuyển hướng đến một nơi khác, vì vậy yêu cầu thứ hai được thực hiện, hiển thị lỗi. Có thể những tin nhắn này không bao giờ được hiển thị ngay lập tức, nhưng chỉ khi trả lời yêu cầu sau khi một thông báo phát sinh lỗi. Vì vậy, tôi đã cố gắng để làm theo quy ước này có thể bằng cách chuyển hướng đến một hành động hiển thị các thông điệp này, nhưng điều này đã không làm việc hoặc.
Nếu có ai đó có thể cho tôi biết cách để các thông điệp đó xuất hiện, nó sẽ làm cho ngày của tôi.
Cảm ơn bạn rất nhiều! Tôi vẫn không biết Ở đâu nó được quyết định rằng một tin nhắn chưa được hiển thị, nhưng phương pháp của bạn có hiệu quả giải quyết vấn đề của tôi. – pancake