Index: t3lib/class.t3lib_flashmessagequeue.php =================================================================== --- t3lib/class.t3lib_flashmessagequeue.php (revision 9553) +++ t3lib/class.t3lib_flashmessagequeue.php (working copy) @@ -55,11 +55,7 @@ if ($message->isSessionMessage()) { $queuedFlashMessages = self::getFlashMessagesFromSession(); $queuedFlashMessages[] = $message; - - $GLOBALS['BE_USER']->setAndSaveSessionData( - 'core.template.flashMessages', - $queuedFlashMessages - ); + self::storeFlashMessagesInSession($queuedFlashMessages); } else { self::$messages[] = $message; } @@ -77,10 +73,7 @@ $queuedFlashMessagesFromSession = self::getFlashMessagesFromSession(); if (!empty($queuedFlashMessagesFromSession)) { // reset messages in user session - $GLOBALS['BE_USER']->setAndSaveSessionData( - 'core.template.flashMessages', - null - ); + self::removeAllFlashMessagesFromSession(); } $queuedFlashMessages = array_merge($queuedFlashMessagesFromSession, self::$messages); @@ -92,13 +85,46 @@ } /** + * Stores given flash messages in the session + * + * @param array array of t3lib_FlashMessage + * @return void + */ + protected static function storeFlashMessagesInSession(array $flashMessages) { + if (TYPO3_MODE === 'BE') { + $GLOBALS['BE_USER']->setAndSaveSessionData('core.template.flashMessages', $flashMessages); + } else { + $GLOBALS['TSFE']->fe_user->setKey('ses', 'core.template.flashMessages', $flashMessages); + $GLOBALS['TSFE']->fe_user->storeSessionData(); + } + } + + /** + * Removes all flash messages from the session + * + * @return void + */ + protected static function removeAllFlashMessagesFromSession() { + if (TYPO3_MODE === 'BE') { + $GLOBALS['BE_USER']->setAndSaveSessionData('core.template.flashMessages', NULL); + } else { + $GLOBALS['TSFE']->fe_user->setKey('ses', 'core.template.flashMessages', NULL); + $GLOBALS['TSFE']->fe_user->storeSessionData(); + } + } + + /** * Returns current flash messages from the session, making sure to always * return an array. * * @return array An array of t3lib_FlashMessage flash messages. */ protected static function getFlashMessagesFromSession() { - $flashMessages = $GLOBALS['BE_USER']->getSessionData('core.template.flashMessages'); + if (TYPO3_MODE === 'BE') { + $flashMessages = $GLOBALS['BE_USER']->getSessionData('core.template.flashMessages'); + } else { + $flashMessages = $GLOBALS['TSFE']->fe_user->getKey('ses', 'core.template.flashMessages'); + } return is_array($flashMessages) ? $flashMessages : array(); }