[BUGFIX] Prevent compression of scripts that use ajax.php
[Packages/TYPO3.CMS.git] / t3lib / class.t3lib_flashmessagequeue.php
index 75a1e9f..91c10c8 100644 (file)
@@ -2,7 +2,7 @@
 /***************************************************************
  *  Copyright notice
  *
 /***************************************************************
  *  Copyright notice
  *
- *  (c) 2009-2010 Rupert Germann <rupi@gmx.li>
+ *  (c) 2009-2011 Rupert Germann <rupi@gmx.li>
  *  All rights reserved
  *
  *  This script is part of the TYPO3 project. The TYPO3 project is
  *  All rights reserved
  *
  *  This script is part of the TYPO3 project. The TYPO3 project is
@@ -55,11 +55,7 @@ class t3lib_FlashMessageQueue {
                if ($message->isSessionMessage()) {
                        $queuedFlashMessages = self::getFlashMessagesFromSession();
                        $queuedFlashMessages[] = $message;
                if ($message->isSessionMessage()) {
                        $queuedFlashMessages = self::getFlashMessagesFromSession();
                        $queuedFlashMessages[] = $message;
-
-                       $GLOBALS['BE_USER']->setAndSaveSessionData(
-                               'core.template.flashMessages',
-                               $queuedFlashMessages
-                       );
+                       self::storeFlashMessagesInSession($queuedFlashMessages);
                } else {
                        self::$messages[] = $message;
                }
                } else {
                        self::$messages[] = $message;
                }
@@ -67,24 +63,29 @@ class t3lib_FlashMessageQueue {
 
        /**
         * Returns all messages from the current PHP session and from the current request.
 
        /**
         * Returns all messages from the current PHP session and from the current request.
-        * After fetching the messages the internal queue and the message queue in the session
-        * will be emptied.
         *
         * @return       array   array of t3lib_FlashMessage objects
         */
         *
         * @return       array   array of t3lib_FlashMessage objects
         */
-       public static function getAllMessagesAndFlush() {
+       public static function getAllMessages() {
                        // get messages from user session
                $queuedFlashMessagesFromSession = self::getFlashMessagesFromSession();
                        // get messages from user session
                $queuedFlashMessagesFromSession = self::getFlashMessagesFromSession();
-               if (!empty($queuedFlashMessagesFromSession)) {
-                               // reset messages in user session
-                       $GLOBALS['BE_USER']->setAndSaveSessionData(
-                               'core.template.flashMessages',
-                               null
-                       );
-               }
-
                $queuedFlashMessages = array_merge($queuedFlashMessagesFromSession, self::$messages);
 
                $queuedFlashMessages = array_merge($queuedFlashMessagesFromSession, self::$messages);
 
+               return $queuedFlashMessages;
+       }
+
+       /**
+        * Returns all messages from the current PHP session and from the current request.
+        * After fetching the messages the internal queue and the message queue in the session
+        * will be emptied.
+        *
+        * @return       array   array of t3lib_FlashMessage objects
+        */
+       public static function getAllMessagesAndFlush() {
+               $queuedFlashMessages = self::getAllMessages();
+
+                       // reset messages in user session
+               self::removeAllFlashMessagesFromSession();
                        // reset internal messages
                self::$messages = array();
 
                        // reset internal messages
                self::$messages = array();
 
@@ -92,17 +93,47 @@ class t3lib_FlashMessageQueue {
        }
 
        /**
        }
 
        /**
+        * Stores given flash messages in the session
+        *
+        * @param       array   array of t3lib_FlashMessage
+        * @return      void
+        */
+       protected static function storeFlashMessagesInSession(array $flashMessages) {
+               self::getUserByContext()->setAndSaveSessionData('core.template.flashMessages', $flashMessages);
+
+       }
+
+       /**
+        * Removes all flash messages from the session
+        *
+        * @return      void
+        */
+       protected static function removeAllFlashMessagesFromSession() {
+               self::getUserByContext()->setAndSaveSessionData('core.template.flashMessages', NULL);
+       }
+
+       /**
         * 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() {
         * 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');
+               $flashMessages = self::getUserByContext()->getSessionData('core.template.flashMessages');
+
                return is_array($flashMessages) ? $flashMessages : array();
        }
 
        /**
                return is_array($flashMessages) ? $flashMessages : array();
        }
 
        /**
+        * Gets user object by context
+        *
+        * @return object user object
+        */
+       protected static function getUserByContext() {
+               return TYPO3_MODE === 'BE' ? $GLOBALS['BE_USER'] : $GLOBALS['TSFE']->fe_user;
+       }
+
+       /**
         * Fetches and renders all available flash messages from the queue.
         *
         * @return      string  All flash messages in the queue rendered as HTML.
         * Fetches and renders all available flash messages from the queue.
         *
         * @return      string  All flash messages in the queue rendered as HTML.
@@ -123,7 +154,7 @@ class t3lib_FlashMessageQueue {
 }
 
 
 }
 
 
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_flashmessagequeue.php']) {
-       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_flashmessagequeue.php']);
+if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_flashmessagequeue.php'])) {
+       include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_flashmessagequeue.php']);
 }
 ?>
\ No newline at end of file
 }
 ?>
\ No newline at end of file