From be155e14b2452d668897fee7f475fc90831dfcea Mon Sep 17 00:00:00 2001 From: pdontthink Date: Mon, 9 Oct 2006 07:07:52 +0000 Subject: [PATCH] Need to instantiate template object earlier so user prefs css theme selection can be verified git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@11871 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- include/init.php | 9 +++++++-- include/load_prefs.php | 34 +++++++++++++--------------------- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/include/init.php b/include/init.php index f58bf546..fb0cc536 100644 --- a/include/init.php +++ b/include/init.php @@ -315,7 +315,7 @@ switch ($sInitLocation) { } } -// FIXME: do we need/want to check here for actual presence of template sets? +// FIXME: do we need/want to check here for actual (physical) presence of template sets? // selected template not available, fall back to default template // if (!$found_templateset) { @@ -540,7 +540,12 @@ if (!isset($sTemplateID)) { $sTemplateID = Template::get_default_template_set(); $icon_theme_path = !$use_icons ? NULL : Template::calculate_template_images_directory($sTemplateID); } -$oTemplate = Template::construct_template($sTemplateID); + +// template object may have already been constructed in load_prefs.php +// +if (empty($oTemplate)) { + $oTemplate = Template::construct_template($sTemplateID); +} // We want some variables to always be available to the template $always_include = array('sTemplateID', 'icon_theme_path', 'javascript_on'); diff --git a/include/load_prefs.php b/include/load_prefs.php index d0546413..3d0997a3 100644 --- a/include/load_prefs.php +++ b/include/load_prefs.php @@ -35,6 +35,11 @@ $custom_css = getPref($data_dir, $username, 'custom_css', 'none' ); $sDefaultTemplateID = Template::get_default_template_set(); $sTemplateID = getPref($data_dir, $username, 'sTemplateID', $sDefaultTemplateID); +// need to build this object now because it is used below to validate +// user css theme choice +// +$oTemplate = Template::construct_template($sTemplateID); + // check user prefs template selection against templates actually available // $found_templateset = false; @@ -66,22 +71,11 @@ while (!$found_theme && $k < count($user_themes)) { $found_theme = true; $k++; } -/** - * $oTemplate is not instantiated when this is called, so we need to devise - * a method of fething a list of tempalte-provided alt stylesheets to validate - * against. For now, we assume that it is always found. - * - * FIXME: fix this. -PL: See include/init.php commit from 2 days ago, Template class should be - loaded before this file is, so the commented-out code below will probably - work -SB: Nope, still get errors. - */ -#$template_themes = $oTemplate->get_alternative_stylesheets(); -#while (!$found_theme && (list($path, $name) = each($template_themes))) { -# if ('t_'.$path == $chosen_theme_path) -# $found_theme = true; -#} +$template_themes = $oTemplate->get_alternative_stylesheets(); +while (!$found_theme && (list($path, $name) = each($template_themes))) { + if ('t_'.$path == $chosen_theme_path) + $found_theme = true; +} if (substr($chosen_theme, 0, 2) == 't_') $found_theme = true; @@ -89,10 +83,8 @@ if (!$found_theme || $chosen_theme == 'none') { $chosen_theme_path = NULL; } -/* PL: Steve, is this commented out because it is part of the old system being removed? - Let's just remove it then... no? - - SB: Holding on to incase I need to reference later. Will remove eventually. :) +/* ----- SB: Holding on to the following code incase I need to reference later. + Will remove eventually. :) $theme = ( !isset($theme) ? array() : $theme ); $color = ( !isset($color) ? array() : $color ); @@ -121,7 +113,7 @@ if (isset($chosen_theme) && $found_theme && (file_exists($chosen_theme))) { } } -*/ +------ */ // user's icon theme, if using icons $icon_theme = getPref($data_dir, $username, 'icon_theme'); -- 2.25.1