X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=include%2Fload_prefs.php;h=d86cf6cae78cd26ac8eccd8bc8b022568d23af78;hp=4e7401185116fe18aeb2b9d5aabf92fb8443983b;hb=deb25c8f038fb468935c920c2c6f2c61b3e72ece;hpb=8e1e2794267d9cb8d564154a4586c3229bb0abf9 diff --git a/include/load_prefs.php b/include/load_prefs.php index 4e740118..d86cf6ca 100644 --- a/include/load_prefs.php +++ b/include/load_prefs.php @@ -29,38 +29,40 @@ if( ! sqgetGlobalVar('username', $username, SQ_SESSION) ) { // TODO Get rid of "none" strings when NULL or false should be used, i hate them i hate them i hate them!!!. $custom_css = getPref($data_dir, $username, 'custom_css', 'none' ); -$theme = ( !isset($theme) ? array() : $theme ); -$color = ( !isset($color) ? array() : $color ); -$aTemplateSet = ( !isset($aTemplateSet) ? array() : $aTemplateSet ); +$aTemplateSet = (!isset($aTemplateSet) || !is_array($aTemplateSet) + ? array() : $aTemplateSet); $templateset_default = ( !isset($templateset_default) ? 0 : $templateset_default ); -$chosen_theme = getPref($data_dir, $username, 'chosen_theme'); -$sTplDir = getPref($data_dir, $username, 'sTplDir', SM_PATH . 'templates/default/'); -$found_templateset = false; - -/* need to adjust $chosen_template path with SM_PATH */ -$sTplDir = preg_replace("/(\.\.\/){1,}/", SM_PATH, $sTplDir); +$sTemplateID = getPref($data_dir, $username, 'sTemplateID', 'default'); +// check user prefs template selection against templates actually available +// +$found_templateset = false; for ($i = 0; $i < count($aTemplateSet); ++$i){ - if ($aTemplateSet[$i]['PATH'] == $sTplDir) { + if ($aTemplateSet[$i]['ID'] == $sTemplateID) { $found_templateset = true; break; } } -$sTplDir = ($found_templateset ? $sTplDir : ''); + +// FIXME: do we need/want to check here for actual presence of template sets? +// selected template not available, fall back to default template +// if (!$found_templateset) { - if (isset($aTemplateSet) && isset($aTemplateSet[$templateset_default]) && file_exists($aTemplateSet[$templateset_default]['PATH'])) { - $sTplDir = $aTemplateSet[$templateset_default]['PATH']; - } else { - $sTplDir = SM_PATH.'templates/default/'; - } -} else if (!file_exists($sTplDir)) { - $sTplDir = SM_PATH.'templates/default/'; + $sTemplateID = ( !isset($aTemplateSet[$templateset_default]['ID']) ? + 'default' : $aTemplateSet[$templateset_default]['ID'] ); } +$chosen_theme = getPref($data_dir, $username, 'chosen_theme'); + +/* +$theme = ( !isset($theme) ? array() : $theme ); +$color = ( !isset($color) ? array() : $color ); + +$chosen_theme = getPref($data_dir, $username, 'chosen_theme'); $found_theme = false; -/* need to adjust $chosen_theme path with SM_PATH */ +// need to adjust $chosen_theme path with SM_PATH $chosen_theme = preg_replace("/(\.\.\/){1,}/", SM_PATH, $chosen_theme); for ($i = 0; $i < count($theme); ++$i){ @@ -81,17 +83,16 @@ 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', 'images/themes/xp/' ); -if ($icon_theme == 'template') { - $icon_theme = $sTplDir . 'images/'; -} + /* * NOTE: The $icon_theme_path var should contain the path to the icon * theme to use. If the admin has disabled icons, or the user has * set the icon theme to "None," no icons will be used. */ -$icon_theme_path = (!$use_icons || $icon_theme=='none') ? NULL : $icon_theme; +$icon_theme_path = (!$use_icons || $icon_theme=='none') ? NULL : ($icon_theme == 'template' ? Template::calculate_template_images_directory($sTemplateID) : $icon_theme); // show (or not) flag and unflag buttons on mailbox list screen $show_flag_buttons = getPref($data_dir, $username, 'show_flag_buttons', SMPREF_ON ); @@ -408,5 +409,3 @@ if (! isset($use_smtp_tls)) { } do_hook('loading_prefs'); - -?>