Make a function to get the current theme and use it everywhere rather than duplicating code or missing functions. (Fixes forced themes using the wrong theme for login screen)

Conflicts:

	etc/inc/util.inc
	usr/local/www/head.inc
This commit is contained in:
jim-p 2012-11-02 11:06:52 -04:00
parent 7cf76e8bb5
commit 7e66977801
5 changed files with 28 additions and 41 deletions

View File

@ -92,7 +92,7 @@ if (!$_SESSION['Post_Login']) {
*/
function display_error_form($http_code, $desc) {
global $config, $g;
$g['theme'] = $config['theme'];
$g['theme'] = get_current_theme();
if(isAjax()) {
echo "Error: {$http_code} Description: {$desc}";
return;
@ -150,7 +150,7 @@ function display_error_form($http_code, $desc) {
function display_login_form() {
require_once("globals.inc");
global $config, $g;
$g['theme'] = $config['theme'];
$g['theme'] = get_current_theme();
unset($input_errors);

View File

@ -1541,4 +1541,27 @@ function get_staticroutes($returnsubnetsonly = false) {
return $allstaticroutes;
}
}
function get_current_theme() {
global $config, $g;
/*
* if user has selected a custom template, use it.
* otherwise default to pfsense tempalte
*/
if (($g["disablethemeselection"] === true) && !empty($g["default_theme"]) && (is_dir($g["www_path"].'/themes/'.$g["default_theme"])))
$theme = $g["default_theme"];
elseif($config['theme'] <> "" && (is_dir($g["www_path"].'/themes/'.$config['theme'])))
$theme = $config['theme'];
else
$theme = "pfsense";
/*
* If this device is an apple ipod/iphone
* switch the theme to one that works with it.
*/
$lowres_ua = array("iPhone", "iPod", "iPad", "Android", "BlackBerry", "Opera Mini", "Opera Mobi", "PlayBook");
foreach($lowres_ua as $useragent)
if(strstr($_SERVER['HTTP_USER_AGENT'], $useragent))
$theme = (empty($g['theme_lowres']) && (is_dir($g["www_path"].'/themes/'.$g['theme_lowres']))) ? "pfsense" : $g['theme_lowres'];
return $theme;
}
?>

View File

@ -62,23 +62,8 @@ foreach (scandir("/usr/local/www/classes/") as $file) {
require_once("classes/{$file}");
}
}
/*
* if user has selected a custom template, use it.
* otherwise default to pfsense template
*/
if($config['theme'] <> "")
$g['theme'] = $config['theme'];
else
$g['theme'] = "pfsense";
/*
* If this device is an apple ipod/iphone
* switch the theme to one that works with it.
*/
$apple_ua = array("iPhone","iPod", "iPad");
foreach($apple_ua as $useragent)
if(strstr($_SERVER['HTTP_USER_AGENT'], $useragent))
$g['theme'] = "pfsense";
$g['theme'] = get_current_theme();
/* used by progress bar */
$lastseen = "-1";

View File

@ -3,25 +3,7 @@
pfSense_MODULE: header
*/
/*
* if user has selected a custom template, use it.
* otherwise default to pfsense tempalte
*/
if (($g["disablethemeselection"] === true) && !empty($g["default_theme"]) && (is_dir($g["www_path"].'/themes/'.$g["default_theme"])))
$g['theme'] = $g["default_theme"];
elseif($config['theme'] <> "" && (is_dir($g["www_path"].'/themes/'.$config['theme'])))
$g['theme'] = $config['theme'];
else
$g['theme'] = "pfsense";
/*
* If this device is an apple ipod/iphone
* switch the theme to one that works with it.
*/
$lowres_ua = array("iPhone", "iPod", "iPad", "Android", "BlackBerry", "Opera Mini", "Opera Mobi");
foreach($lowres_ua as $useragent)
if(strstr($_SERVER['HTTP_USER_AGENT'], $useragent))
$g['theme'] = empty($g['theme_lowres']) ? "pfsense" : $g['theme_lowres'];
$g['theme'] = get_current_theme();
$pagetitle = gentitle( $pgtitle );

View File

@ -4,10 +4,7 @@
include("guiconfig.inc");
if($config['theme'] <> "")
$g['theme'] = $config['theme'];
else
$g['theme'] = "pfsense";
$g['theme'] = get_current_theme();
$url = 'progress.php?UPLOAD_IDENTIFIER='. $_GET["UPLOAD_IDENTIFIER"] .'&e=1';