*
* Displays all optinos about display preferences
*
- * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @copyright © 1999-2009 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
define('SMOPT_GRP_GENERAL', 0);
define('SMOPT_GRP_MAILBOX', 1);
define('SMOPT_GRP_MESSAGE', 2);
+define('SMOPT_GRP_ABOOK', 3);
global $use_iframe;
if (! isset($use_iframe)) $use_iframe=false;
}
/* Load the theme option. */
-
- /**
- * 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.
-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 = array();
// Always provide the template default first.
$theme_values['none'] = 'Template Default Theme';
// List alternate themes provided by templates first
- $template_themes = $oTemplate->get_alternative_stylesheets();
+ $template_themes = $oTemplate->get_alternative_stylesheets(true);
asort($template_themes);
foreach ($template_themes as $sheet=>$name) {
- $theme_values['t_'.$sheet] = 'Template Theme - '.htmlspecialchars($name);
+ $theme_values[$sheet] = 'Template Theme - '.htmlspecialchars($name);
}
// Next, list user-provided styles
asort($user_themes);
foreach ($user_themes as $style) {
if ($style['PATH'] == 'none')
continue;
- $theme_values['u_'.$style['PATH']] = 'User Theme - '.htmlspecialchars($style['NAME']);
+ $theme_values[$style['PATH']] = 'User Theme - '.htmlspecialchars($style['NAME']);
}
if (count($user_themes) + count($template_themes) > 1) {
SMPREF_JS_ON => _("Always"),
SMPREF_JS_OFF => _("Never")),
'save' => 'save_option_javascript_autodetect',
- 'script' => 'onclick="document.forms[0].new_js_autodetect_results.value = \'' . SMPREF_JS_ON . '\';"'
+ 'extra_attributes' => array('onclick' => 'document.option_form.new_js_autodetect_results.value = \'' . SMPREF_JS_ON . '\';'),
);
$optvals[SMOPT_GRP_GENERAL][] = array(
'size' => SMOPT_SIZE_TINY
);
+ $optvals[SMOPT_GRP_MAILBOX][] = array(
+ 'name' => 'show_personal_names',
+ 'caption' => _("Show Names Instead of Email Addresses"),
+ 'type' => SMOPT_TYPE_BOOLEAN,
+ 'refresh' => SMOPT_REFRESH_NONE,
+ );
+
$optvals[SMOPT_GRP_MAILBOX][] = array(
'name' => 'show_full_date',
'caption' => _("Always Show Full Date"),
'refresh' => SMOPT_REFRESH_NONE
);
+ $optvals[SMOPT_GRP_MAILBOX][] = array(
+ 'name' => 'custom_date_format',
+ 'caption' => _("Custom Date Format"),
+//FIXME: need better wording here. users should be made aware that this is for advanced use. It might be nice to provide a list of the more common date format characters. It may be helpful to know that it overrides settings such as the one above show_full_date, and only if kept empty will the other date formats apply. For non-English users, it also may be helpful to know that the format is still passed through our own date_intl() function which translates things like the day of the week, month names and abbreviations, etc.
+ 'trailing_text' => ' ' . _("(Uses format of PHP date() function)"),
+ 'type' => SMOPT_TYPE_STRING,
+ 'refresh' => SMOPT_REFRESH_NONE,
+ 'size' => SMOPT_SIZE_TINY,
+ );
+
$optvals[SMOPT_GRP_MAILBOX][] = array(
'name' => 'truncate_sender',
'caption' => _("Length of From/To Field (0 for full)"),
'refresh' => SMOPT_REFRESH_ALL
);
+
+
+ /*** Load the Address Book Options into the array ***/
+ $optgrps[SMOPT_GRP_ABOOK] = _("Address Book Display Options");
+ $optvals[SMOPT_GRP_ABOOK] = array();
+
+ $optvals[SMOPT_GRP_ABOOK][] = array(
+ 'name' => 'abook_show_num',
+ 'caption' => _("Number of Addresses per Page"),
+ 'type' => SMOPT_TYPE_INTEGER,
+ 'refresh' => SMOPT_REFRESH_NONE,
+ 'size' => SMOPT_SIZE_TINY
+ );
+
+ $optvals[SMOPT_GRP_ABOOK][] = array(
+ 'name' => 'abook_page_selector',
+ 'caption' => _("Enable Page Selector"),
+ 'type' => SMOPT_TYPE_BOOLEAN,
+ 'refresh' => SMOPT_REFRESH_NONE
+ );
+
+ $optvals[SMOPT_GRP_ABOOK][] = array(
+ 'name' => 'abook_compact_paginator',
+ 'caption' => _("Use Compact Page Selector"),
+ 'type' => SMOPT_TYPE_BOOLEAN,
+ 'refresh' => SMOPT_REFRESH_NONE
+ );
+
+ $optvals[SMOPT_GRP_ABOOK][] = array(
+ 'name' => 'abook_page_selector_max',
+ 'caption' => _("Maximum Number of Pages to Show"),
+ 'type' => SMOPT_TYPE_INTEGER,
+ 'refresh' => SMOPT_REFRESH_NONE,
+ 'size' => SMOPT_SIZE_TINY
+ );
+
+
+
/* Assemble all this together and return it as our result. */
$result = array(
'grps' => $optgrps,
//
global $sTemplateID;
$sTemplateID = $option->new_value;
- Template::cache_template_file_hierarchy(TRUE);
+ Template::cache_template_file_hierarchy($sTemplateID, TRUE);
}
+ /**
+ * TODO: If the template changes and we are using a template provided theme
+ * ($user_theme), do we want to reset $user_theme?
+ */
/* Save the option like normal. */
save_option($option);
}
$found = false;
reset($user_themes);
while (!$found && (list($index, $data) = each($user_themes))) {
- if ('u_'.$data['PATH'] == $option->new_value)
+ if ($data['PATH'] == $option->new_value)
$found = true;
}
- $template_themes = $oTemplate->get_alternative_stylesheets();
- foreach ($template_themes as $path=>$name) {
- if ('t_'.$path == $option->new_value)
- $found = true;
+ if (!$found) {
+ $template_themes = $oTemplate->get_alternative_stylesheets(true);
+ while (!$found && (list($path, $name) = each($template_themes))) {
+ if ($path == $option->new_value)
+ $found = true;
+ }
}
if (!$found)