Fix missing $_SESSION variable in src/App

This commit is contained in:
Hypolite Petovan 2018-08-05 15:56:21 +02:00
parent d9c6c919e8
commit 45de8a28cd
2 changed files with 20 additions and 9 deletions

View file

@ -1399,16 +1399,12 @@ class App
} }
} }
if (!empty($_SESSION)) { $user_theme = Core\Session::get('theme', $system_theme);
$user_theme = defaults($_SESSION, 'theme', $system_theme);
} else {
$user_theme = $system_theme;
}
// Specific mobile theme override // 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'); $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 // --- means same mobile theme as desktop
if (!empty($user_mobile_theme) && $user_mobile_theme !== '---') { if (!empty($user_mobile_theme) && $user_mobile_theme !== '---') {

View file

@ -45,9 +45,24 @@ class Session
return isset($_SESSION[$name]); 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) public static function set($name, $value)