Fix incorrect stristr() parameter order
[squirrelmail.git] / include / options / display.php
index a519de42f35a1a06b6b17e021a0a8ef05efe4944..c2814c85b92d8dbac685949667652d26443aa5fb 100644 (file)
@@ -5,7 +5,7 @@
  *
  * 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
@@ -15,6 +15,7 @@
 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;
@@ -72,36 +73,23 @@ function load_optpage_data_display() {
     }
 
     /* 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) {
@@ -210,7 +198,7 @@ SB: Don't think so.  If the user chooses a template theme than changes the
                            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(
@@ -292,6 +280,13 @@ SB: Don't think so.  If the user chooses a template theme than changes the
         '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"),
@@ -299,6 +294,16 @@ SB: Don't think so.  If the user chooses a template theme than changes the
         '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)"),
@@ -403,6 +408,44 @@ FIXME!
         '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,
@@ -443,10 +486,14 @@ function save_option_template($option) {
         //
         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);
 }
@@ -488,14 +535,16 @@ function css_theme_save ($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)