$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;
$chosen_theme = getPref($data_dir, $username, 'chosen_theme');
$found_theme = false;
$chosen_theme_path = empty($chosen_theme) ?
- $chosen_theme_path = 'u_'.$user_themes[$user_theme_default]['PATH'] :
+ $chosen_theme_path = $user_themes[$user_theme_default]['PATH'] :
$chosen_theme;
// Make sure the chosen theme is a legitimate one.
// need to adjust $chosen_theme path with SM_PATH
$chosen_theme_path = preg_replace("/(\.\.\/){1,}/", SM_PATH, $chosen_theme_path);
-$k = 0;
-while (!$found_theme && $k < count($user_themes)) {
- if ('u_'.$user_themes[$k]['PATH'] == $chosen_theme_path)
+while (!$found_theme && (list($index, $data) = each($user_themes))) {
+ if ($data['PATH'] == $chosen_theme_path)
$found_theme = true;
- $k++;
}
-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. :)
-
-$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
-$chosen_theme = preg_replace("/(\.\.\/){1,}/", SM_PATH, $chosen_theme);
-
-for ($i = 0; $i < count($theme); ++$i){
- if ($theme[$i]['PATH'] == $chosen_theme) {
- $found_theme = true;
- break;
+if (!$found_theme) {
+ $template_themes = $oTemplate->get_alternative_stylesheets(true);
+ while (!$found_theme && (list($path, $name) = each($template_themes))) {
+ if ($path == $chosen_theme_path)
+ $found_theme = true;
}
}
-$chosen_theme = (!$found_theme ? '' : $chosen_theme);
-
-if (isset($chosen_theme) && $found_theme && (file_exists($chosen_theme))) {
- @include_once($chosen_theme);
-} else {
- if (isset($theme) && isset($theme[$theme_default]) && file_exists($theme[$theme_default]['PATH'])) {
- @include_once($theme[$theme_default]['PATH']);
- $chosen_theme = $theme[$theme_default]['PATH'];
- }
+if (!$found_theme || $chosen_theme == 'none') {
+ $chosen_theme_path = NULL;
}
-*/
-
// user's icon theme, if using icons
$icon_theme = getPref($data_dir, $username, 'icon_theme');
$default_icon_theme = $icon_themes[$icon_theme_def]['PATH'];
+$fallback_icon_theme = $icon_themes[$icon_theme_fallback]['PATH'];
$found_theme = false;
// Make sure the chosen icon theme is a legitimate one.
* 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 == 'template' ? Template::calculate_template_images_directory($sTemplateID) : $icon_theme);
+$icon_theme_path = (!$use_icons || $icon_theme=='none') ? NULL : ($icon_theme == 'template' ? SM_PATH . Template::calculate_template_images_directory($sTemplateID) : $icon_theme);
+$default_icon_theme_path = (!$use_icons || $default_icon_theme=='none') ? NULL : ($default_icon_theme == 'template' ? SM_PATH . Template::calculate_template_images_directory($sTemplateID) : $default_icon_theme);
+$fallback_icon_theme_path = (!$use_icons || $fallback_icon_theme=='none') ? NULL : ($fallback_icon_theme == 'template' ? SM_PATH . Template::calculate_template_images_directory($sTemplateID) : $fallback_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 );