CMSでグローバルメッセージをキャッシュするMagentoを停止するにはどうすればよいですか

magento.stackexchange https://magento.stackexchange.com/questions/3304

  •  16-10-2019
  •  | 
  •  

質問

この行を使用してCMSで作成された申請書があります

{{block type="[MODULE]/[BLOCK]" template="[TEMPLATE]"}}

フォームを送信して上部で成功メッセージを取得すると、キャッシュされるので、何度もリロードしたり、別のページからページに戻っても、成功メッセージは残ります。

これは問題です。フォームを複数回送信すると、ログインページにすべての成功メッセージがすべてそこに出力され、出力されていないために積み上げられ、無効化のために出力するエラーメッセージが同じであるため、積み上げられます。キャッシュをクリアしたりオフにしたりする瞬間は大丈夫です

では、CMSでグローバルメッセージをキャッシュするMagentoを停止するにはどうすればよいですか

役に立ちましたか?

解決

クラスmage_core_model_session_abstractを拡張するセッションモデルを使用している場合、の値を渡すことができるはずです 本当です getMessages関数に。これにより、ユーザーに表示されるようにそれらを返す準備ができているメッセージをクローンし、セッションからクリアして、それらが一度しか表示されないようにします。

public function getMessages($clear=false)
{
    if (!$this->getData('messages')) {
        $this->setMessages(Mage::getModel('core/message_collection'));
    }

    if ($clear) {
        $messages = clone $this->getData('messages');
        $this->getData('messages')->clear();
        Mage::dispatchEvent('core_session_abstract_clear_messages');
        return $messages;
    }
    return $this->getData('messages');
}
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top