]> git.mxchange.org Git - friendica.git/commitdiff
Fix missing $_SESSION variable in src/App
authorHypolite Petovan <mrpetovan@gmail.com>
Sun, 5 Aug 2018 13:56:21 +0000 (15:56 +0200)
committerHypolite Petovan <mrpetovan@gmail.com>
Sun, 5 Aug 2018 13:56:21 +0000 (15:56 +0200)
src/App.php
src/Core/Session.php

index f583f151a6d307259f5be6d88bbd3d8d703c0a26..d02ea73ca46de28dd984ef69803b36d22a19e35e 100644 (file)
@@ -1399,16 +1399,12 @@ class App
                        }
                }
 
-               if (!empty($_SESSION)) {
-                       $user_theme = defaults($_SESSION, 'theme', $system_theme);
-               } else {
-                       $user_theme = $system_theme;
-               }
+               $user_theme = Core\Session::get('theme', $system_theme);
 
                // Specific mobile theme override
-               if (($this->is_mobile || $this->is_tablet) && defaults($_SESSION, 'show-mobile', true)) {
+               if (($this->is_mobile || $this->is_tablet) && Core\Session::get('show-mobile', true)) {
                        $system_mobile_theme = Config::get('system', 'mobile-theme');
-                       $user_mobile_theme = defaults($_SESSION, 'mobile-theme', $system_mobile_theme);
+                       $user_mobile_theme = Core\Session::get('mobile-theme', $system_mobile_theme);
 
                        // --- means same mobile theme as desktop
                        if (!empty($user_mobile_theme) && $user_mobile_theme !== '---') {
index b245c675b0f0981f7d0a759e2fbb2cb5ac4065de..6d059eb4ef5de1d4d69237bdda0aac7bb0817657 100644 (file)
@@ -45,9 +45,24 @@ class Session
                return isset($_SESSION[$name]);
        }
 
-       public static function get($name)
+       /**
+        * Retrieves a key from the session super global or the defaults if the key is missing or the value is falsy.
+        * 
+        * Handle the case where session_start() hasn't been called and the super global isn't available.
+        *
+        * @param string $name
+        * @param mixed $defaults
+        * @return mixed
+        */
+       public static function get($name, $defaults = null)
        {
-               return defaults($_SESSION, $name, null);
+               if (isset($_SESSION)) {
+                       $return = defaults($_SESSION, $name, $defaults);
+               } else {
+                       $return = $defaults;
+               }
+
+               return $return;
        }
 
        public static function set($name, $value)