Как остановить кэширование глобальных сообщений magento на CMS


У меня есть форма заявки, которая создана на CMS с использованием этой строки

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

Теперь, когда вы отправляете форму и получаете сообщение об успешном завершении вверху, оно кэшируется, поэтому независимо от того, сколько раз я перезагружаю или возвращаюсь на страницу с другой страницы, сообщение об успешном завершении остается

Это проблема, потому что, если вы отправляете форму несколько раз, затем переходите на страницу входа, все сообщения об успешном завершении выводятся там, поэтому они накапливаются, потому что их нет вывод, и любые сообщения об ошибках, которые должны выводиться из-за недействительности, делают то же самое, в тот момент, когда я очищаю кэш или выключаю его, все в порядке

Итак, как мне остановить кэширование глобальных сообщений magento на CMS

Author: Memor-X, 2013-04-29

1 answers

Если вы используете модель сеанса, которая расширяет класс Mage_Core_Model_Session_Abstract, то вы должны иметь возможность передать значение true функции 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');
}
 2
Author: David Manners, 2013-09-26 17:37:55