X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Ftheme-manager.php;h=2ba2d28b774bd4dc01662d21847721661fb3fa47;hb=357b2ca133fc1f89db74097955c366cb4bee6996;hp=8e573ff37a9ec21f537447c6b2cd18a3e1c9dce8;hpb=75ad748a68473ace540251427a74fb781b1145e9;p=mailer.git diff --git a/inc/theme-manager.php b/inc/theme-manager.php index 8e573ff37a..2ba2d28b77 100644 --- a/inc/theme-manager.php +++ b/inc/theme-manager.php @@ -32,77 +32,69 @@ ************************************************************************/ // Some security stuff... -if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) -{ +if (!defined('__SECURITY')) { $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; require($INC); } -// -function GET_CURR_THEME() -{ - global $_COOKIE, $INC_POOL, $CONFIG, $_GET, $_POST, $CSS; +// Always make sure the session management is initialized first +require_once(PATH."inc/session.php"); + +// Get current theme name +function GET_CURR_THEME() { + global $INC_POOL, $_CONFIG, $CSS, $cacheArray; + // The default theme is 'default'... ;-) $ret = "default"; // Load default theme if not empty from configuration - if (!empty($CONFIG['default_theme'])) $ret = $CONFIG['default_theme']; + if (!empty($_CONFIG['default_theme'])) $ret = $_CONFIG['default_theme']; - if (empty($_COOKIE['mxchange_theme'])) - { + if (!isSessionVariableSet('mxchange_theme')) { // Set default theme - @setcookie("mxchange_theme", $ret, (time() + 60*60*24*365), COOKIE_PATH); - } - elseif ((!empty($_COOKIE['mxchange_theme'])) && (GET_EXT_VERSION("sql_patches") >= "0.1.4")) - { + set_session("mxchange_theme", $ret); + } elseif ((isSessionVariableSet('mxchange_theme')) && (GET_EXT_VERSION("sql_patches") >= "0.1.4")) { + //die("
".print_r($cacheArray['themes'], true)."
"); // Get theme from cookie - $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_themes WHERE theme_path='%s' LIMIT 1", array($_COOKIE['mxchange_theme']), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 1) - { - // Design is valid! - $ret = $_COOKIE['mxchange_theme']; - } + $ret = get_session('mxchange_theme'); + + // Is it valid? + if (THEME_GET_ID($ret) == 0) { + // Fix it to default + $ret = "default"; + } // END - if + } elseif ((!isBooleanConstantAndTrue('mxchange_installed')) && ((isBooleanConstantAndTrue('mxchange_installing')) || ($CSS == true)) && ((!empty($_GET['theme'])) || (!empty($_POST['theme'])))) { + // Prepare FQFN for checking + $theme = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($_GET['theme'])); - // Free memory - SQL_FREERESULT($result); - } - elseif ((!mxchange_installed) && ((mxchange_installing) || ($CSS == true)) && ((!empty($_GET['theme'])) || (!empty($_POST['theme'])))) - { // Installation mode active - if ((!empty($_GET['theme'])) && (file_exists(PATH."theme/".$_GET['theme']."/theme.php"))) - { + if ((!empty($_GET['theme'])) && (FILE_READABLE($theme))) { // Set cookie from URL data - @setcookie("mxchange_theme", $_GET['theme'], (time() + 60*60*24*365), COOKIE_PATH); - $_COOKIE['mxchange_theme'] = $_GET['theme']; - } - elseif (file_exists(PATH."theme/".$_POST['theme']."/theme.php")) - { + set_session("mxchange_theme", $_GET['theme']); + } elseif (FILE_READABLE(sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($_POST['theme'])))) { // Set cookie from posted data - @setcookie("mxchange_theme", $_POST['theme'], (time() + 60*60*24*365), COOKIE_PATH); - $_COOKIE['mxchange_theme'] = $_POST['theme']; + set_session("mxchange_theme", $_POST['theme']); } // Set return value - $ret = $_COOKIE['mxchange_theme']; - } - else - { + $ret = get_session('mxchange_theme'); + } else { // Invalid design, reset cookie - @setcookie("mxchange_theme", $ret, (time() + 60*60*24*365), COOKIE_PATH); + set_session("mxchange_theme", $ret); } // Add (maybe) found theme.php file to inclusion list - $theme = PATH."theme/".$ret."/theme.php"; - if (@file_exists($theme)) $INC_POOL[] = $theme; + $theme = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($ret)); + + // Try to load the requested include file + if (FILE_READABLE($theme)) $INC_POOL[] = $theme; // Return theme value return $ret; } -function THEME_SELECTION_BOX($mod, $act, $wht, $result) -{ +function THEME_SELECTION_BOX($mod, $act, $wht, $result) { // Construction URL - global $CurrTheme; $FORM = URL."/modules.php?module=".$mod; if (!empty($act)) $FORM .= "&action=".$act; if (!empty($wht)) $FORM .= "&what=".$wht; @@ -115,30 +107,27 @@ function THEME_SELECTION_BOX($mod, $act, $wht, $result) ); // Load all themes - while(list($theme) = SQL_FETCHROW($result)) - { + while(list($theme) = SQL_FETCHROW($result)) { // Load it's theme.php file - $INC = PATH."theme/".$theme."/theme.php"; - if (file_exists($INC)) - { + $INC = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($theme)); + if (FILE_READABLE($INC)) { // And save all data in array - include($INC); + require($INC); $THEMES['theme_unix'][] = $theme; $THEMES['theme_name'][] = $THEME_NAME; - } - } + } // END - if + } // END - while // Sort whole array by title array_pk_sort($THEMES, array("theme_name")); // Construct selection form for the box template $OUT = ""; - foreach ($THEMES['theme_unix'] as $key=>$theme) - { + foreach ($THEMES['theme_unix'] as $key => $theme) { $OUT .= "