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 = 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 !== '---') {

View 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)