define('SMOPT_GRP_MAILBOX', 1);
define('SMOPT_GRP_MESSAGE', 2);
-/**
- * Icon themes and user CSS themes should probably both be moved to conf.pl
- *
- * TODO: move to conf.pl
- **/
-// load icon themes if in use
-global $use_icons;
-if ($use_icons) {
- global $icon_themes;
- $dirName = SM_PATH . 'images/themes';
- if (is_readable($dirName) && is_dir($dirName)) {
- $d = dir($dirName);
- while($dir = $d->read()) {
- if ($dir != "." && $dir != "..") {
- if (is_dir($dirName."/".$dir) && file_exists("$dirName/$dir/theme.php"))
- include("$dirName/$dir/theme.php");
- }
- }
- }
-}
-
-// load user-provided CSS themes
-global $css_themes;
-$dirName = SM_PATH . 'css';
-if (is_readable($dirName) && is_dir($dirName)) {
- $d = dir($dirName);
- while($dir = $d->read()) {
- if ($dir != "." && $dir != "..") {
- if (is_dir($dirName."/".$dir) && file_exists("$dirName/$dir/config.php"))
- include("$dirName/$dir/config.php");
- }
- }
-}
-
global $use_iframe;
if (! isset($use_iframe)) $use_iframe=false;
function load_optpage_data_display() {
global $theme, $fontsets, $language, $languages,$aTemplateSet,
$default_use_mdn, $squirrelmail_language, $allow_thread_sort,
- $show_alternative_names, $use_icons, $use_iframe, $sTemplateID,
- $oTemplate, $css_themes;
+ $show_alternative_names, $use_iframe, $use_icons,
+ $sTemplateID, $oTemplate,
+ $user_themes, $chosen_theme;
/* Build a simple array into which we will build options. */
$optgrps = array();
* User themes start with a 'u_', template themes start with a 't_' to
* differentiate which is which. This seems kind of hackish, but we can
* come up with a better solution later.
-No need for the prefixes. Just use full paths, no?
+PL: No need for the prefixes. Just use full paths, no?
+
+SB: Don't think so. If the user chooses a template theme than changes the
+ path to the template, it would error out, right? Or should we worry about
+ that?
*
* TODO: Clean me.
**/
$theme_values['none'] = 'Template Default Theme';
// List alternate themes provided by templates first
+ $template_themes = array();
/*
* Since this requires mods to the template class, I'm holding off on alternate
* template styles until Paul finishes template inheritence.
* -- SB, 2006-09-30
*
- $template_provided = $oTemplate->get_alternative_stylesheets();
+ $template_themes = $oTemplate->get_alternative_stylesheets();
asort($template_provided);
foreach ($template_provided as $sheet=>$name) {
$theme_values['t_'.$sheet] = 'Template Theme - '.htmlspecialchars($name);
}
*/
// Next, list styles provided in SM_PATH/css/
- // FIXME, these should probably be defined in conf.pl!!
- asort($css_themes);
- foreach ($css_themes as $style) {
+ asort($user_themes);
+ foreach ($user_themes as $style) {
+ if ($style['PATH'] == 'none')
+ continue;
$theme_values['u_'.$style['PATH']] = 'User Theme - '.htmlspecialchars($style['NAME']);
}
- $optvals[SMOPT_GRP_GENERAL][] = array(
- 'name' => 'chosen_theme',
- 'caption' => _("Theme"),
- 'type' => SMOPT_TYPE_STRLIST,
- 'refresh' => SMOPT_REFRESH_ALL,
- 'posvals' => $theme_values,
- 'save' => 'css_theme_save'
- );
+ if (count($user_themes) + count($template_themes) > 1) {
+ $optvals[SMOPT_GRP_GENERAL][] = array(
+ 'name' => 'chosen_theme',
+ 'caption' => _("Theme"),
+ 'type' => SMOPT_TYPE_STRLIST,
+ 'refresh' => SMOPT_REFRESH_ALL,
+ 'posvals' => $theme_values,
+ 'save' => 'css_theme_save'
+ );
+ }
/* Icon theme selection */
if ($use_icons) {
save_option($option);
}
-/**
- * This function saves a new theme setting.
- * It updates the theme array.
- */
-function save_option_theme($option) {
- global $theme;
-
- /* Do checking to make sure $new_theme is in the array. */
- $theme_in_array = false;
- for ($i = 0; $i < count($theme); ++$i) {
- if ($theme[$i]['PATH'] == $option->new_value) {
- $theme_in_array = true;
- break;
- }
- }
-
- if (!$theme_in_array) {
- $option->new_value = '';
- }
-
- /* Save the option like normal. */
- save_option($option);
-}
-
/**
* This function saves the javascript detection option.
*/
if ($data['PATH'] == $option->new_value)
$found = true;
}
- if ($found)
- setPref($data_dir, $username, 'icon_theme', $option->new_value);
- else
- setPref($data_dir, $username, 'icon_theme', 'none');
-
+
+ if (!$found)
+ $option->new_value = 'none';
+
+ save_option($option);
}
function css_theme_save ($option) {
- global $css_themes, $data_dir, $username;
+ global $user_themes, $data_dir, $username;
// Don't assume the new value is there, double check
// and only save if found
//
$found = false;
- reset($css_themes);
- while (!$found && (list($index, $data) = each($css_themes))) {
+ reset($user_themes);
+ while (!$found && (list($index, $data) = each($user_themes))) {
if ('u_'.$data['PATH'] == $option->new_value)
$found = true;
}