Ooops.
[squirrelmail.git] / src / options_folder.php
index 442d5c26f42ff61b2a8a30dc5771b6681cfa7671..3ee491017ee85e37ce2f8a12c51bf9e3da96986f 100644 (file)
@@ -1,57 +1,56 @@
 <?php
-   /**
-    **  options_folder.php
-    **
-    **  Copyright (c) 1999-2000 The SquirrelMail development team
-    **  Licensed under the GNU GPL. For full terms see the file COPYING.
-    **
-    **  Displays all options relating to folders
-    **
-    **  $Id$
-    **/
-
-   require_once('../src/validate.php');
-   require_once('../functions/display_messages.php');
-   require_once('../functions/imap.php');
-   require_once('../functions/array.php');
-   require_once('../functions/plugin.php');
-   require_once('../functions/options.php');   
-   
-   displayPageHeader($color, 'None');
-
-   $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
-   $boxes = sqimap_mailbox_list($imapConnection);
-   sqimap_logout($imapConnection);
-?>
-   <br>
-<table width="95%" align="center" border="0" cellpadding="2" cellspacing="0">
-<tr><td bgcolor="<?php echo $color[0] ?>" align="center">
-
-      <b><?php echo _("Options") . " - " . _("Folder Preferences"); ?></b>
-
-    <table width="100%" border="0" cellpadding="1" cellspacing="1">
-    <tr><td bgcolor="<?php echo $color[4] ?>" align="center">
-
-   <form name="f" action="options.php" method="post"><br>
-
-      <table width="100%" cellpadding="2" cellspacing="0" border="0">
 
-<?php if ($show_prefix_option == true) {   ?>   
-         <tr>
-            <td align=right nowrap><?php echo _("Folder Path"); ?>:
-            </td><td>
-<?php if (isset ($folder_prefix))
-      echo '         <input type="text" name="folderprefix" value="'.$folder_prefix.'" size="35"><br>';
-   else
-      echo '         <input type="text" name="folderprefix" value="'.$default_folder_prefix.'" size="35"><br>';
-?>
-            </td>
-         </tr>
-<?php }          
+/**
+ * options_folder.php
+ *
+ * Copyright (c) 1999-2002 The SquirrelMail Project Team
+ * Licensed under the GNU GPL. For full terms see the file COPYING.
+ *
+ * Displays all options relating to folders
+ *
+ * $Id$
+ */
+
+require_once('../functions/imap.php');
+
+/* Define the group constants for the folder options page. */   
+define('SMOPT_GRP_SPCFOLDER', 0);
+define('SMOPT_GRP_FOLDERLIST', 1);
+
+/* Define the optpage load function for the folder options page. */
+function load_optpage_data_folder() {
+    global $username, $key, $imapServerAddress, $imapPort;
+    global $folder_prefix, $default_folder_prefix, $show_prefix_option;
+
+    /* Get some imap data we need later. */
+    $imapConnection =
+        sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
+    $boxes = sqimap_mailbox_list($imapConnection);
+    sqimap_logout($imapConnection);
 
     /* Build a simple array into which we will build options. */
+    $optgrps = array();
     $optvals = array();
 
+    /******************************************************/
+    /* LOAD EACH GROUP OF OPTIONS INTO THE OPTIONS ARRAY. */
+    /******************************************************/
+
+    /*** Load the General Options into the array ***/
+    $optgrps[SMOPT_GRP_SPCFOLDER] = _("Special Folder Options");
+    $optvals[SMOPT_GRP_SPCFOLDER] = array();
+
+    if (!isset($folder_prefix)) { $folder_prefix = $default_folder_prefix; }
+    if ($show_prefix_option) {
+        $optvals[SMOPT_GRP_SPCFOLDER][] = array(
+            'name'    => 'folder_prefix',
+            'caption' => _("Folder Path"),
+            'type'    => SMOPT_TYPE_STRING,
+            'refresh' => SMOPT_REFRESH_FOLDERLIST,
+            'size'    => SMOPT_SIZE_LARGE
+        );
+    }
+
     $special_folder_values = array();
     foreach ($boxes as $folder) {
         if (strtolower($folder['unformatted']) != 'inbox') {
 
     $trash_none = array(SMPREF_NONE => _("Do not use Trash"));
     $trash_folder_values = array_merge($trash_none, $special_folder_values);
-    $optvals[] = array(
+    $optvals[SMOPT_GRP_SPCFOLDER][] = array(
         'name'    => 'trash_folder',
         'caption' => _("Trash Folder"),
         'type'    => SMOPT_TYPE_STRLIST,
         'refresh' => SMOPT_REFRESH_FOLDERLIST,
-        'posvals' => $trash_folder_values
+        'posvals' => $trash_folder_values,
+        'save'    => 'save_option_trash_folder'
     );
     
     $sent_none = array(SMPREF_NONE => _("Do not use Sent"));
     $sent_folder_values = array_merge($sent_none, $special_folder_values);
-    $optvals[] = array(
+    $optvals[SMOPT_GRP_SPCFOLDER][] = array(
         'name'    => 'sent_folder',
         'caption' => _("Sent Folder"),
         'type'    => SMOPT_TYPE_STRLIST,
         'refresh' => SMOPT_REFRESH_FOLDERLIST,
-        'posvals' => $sent_folder_values
+        'posvals' => $sent_folder_values,
+        'save'    => 'save_option_sent_folder'
     );
     
-    $drafts_none = array(SMPREF_NONE => _("Do not use Drafts"));
+    $draft_none = array(SMPREF_NONE => _("Do not use Drafts"));
     $draft_folder_values = array_merge($draft_none, $special_folder_values);
-    $optvals[] = array(
+    $optvals[SMOPT_GRP_SPCFOLDER][] = array(
         'name'    => 'draft_folder',
         'caption' => _("Draft Folder"),
         'type'    => SMOPT_TYPE_STRLIST,
         'refresh' => SMOPT_REFRESH_FOLDERLIST,
-        'posvals' => $draft_folder_values
+        'posvals' => $draft_folder_values,
+        'save'    => 'save_option_draft_folder'
     );
 
-    $optvals[] = array(
+    /*** Load the General Options into the array ***/
+    $optgrps[SMOPT_GRP_FOLDERLIST] = _("Folder List Options");
+    $optvals[SMOPT_GRP_FOLDERLIST] = array();
+
+    $optvals[SMOPT_GRP_FOLDERLIST][] = array(
         'name'    => 'location_of_bar',
         'caption' => _("Location of Folder List"),
         'type'    => SMOPT_TYPE_STRLIST,
     for ($lsv = 100; $lsv <= 300; $lsv += 10) {
         $left_size_values[$lsv] = "$lsv " . _("pixels");
     }
-    $optvals[] = array(
+    $optvals[SMOPT_GRP_FOLDERLIST][] = array(
         'name'    => 'left_size',
         'caption' => _("Width of Folder List"),
         'type'    => SMOPT_TYPE_STRLIST,
             $left_refresh_values[$lr_val] = ($lr_val/60) . " $minute_str";
         }
     }
-    $optvals[] = array(
+    $optvals[SMOPT_GRP_FOLDERLIST][] = array(
         'name'    => 'left_refresh',
         'caption' => _("Auto Refresh Folder List"),
         'type'    => SMOPT_TYPE_STRLIST,
         'posvals' => $left_refresh_values
     );
 
-    $optvals[] = array(
+    $optvals[SMOPT_GRP_FOLDERLIST][] = array(
         'name'    => 'unseen_notify',
-        'caption' => _("Enable Unseen Message Notification"),
+        'caption' => _("Enable Unread Message Notification"),
         'type'    => SMOPT_TYPE_STRLIST,
         'refresh' => SMOPT_REFRESH_FOLDERLIST,
         'posvals' => array(SMPREF_UNSEEN_NONE  => _("No Notification"),
                            SMPREF_UNSEEN_ALL   => _("All Folders"))
     );
 
-    $optvals[] = array(
+    $optvals[SMOPT_GRP_FOLDERLIST][] = array(
         'name'    => 'unseen_type',
-        'caption' => _("Unseen Message Notification Type"),
+        'caption' => _("Unread Message Notification Type"),
         'type'    => SMOPT_TYPE_STRLIST,
         'refresh' => SMOPT_REFRESH_FOLDERLIST,
         'posvals' => array(SMPREF_UNSEEN_ONLY  => _("Only Unseen"),
                            SMPREF_UNSEEN_TOTAL => _("Unseen and Total")) 
     );
 
-    $optvals[] = array(
+    $optvals[SMOPT_GRP_FOLDERLIST][] = array(
         'name'    => 'collapse_folders',
         'caption' => _("Enable Collapsable Folders"),
         'type'    => SMOPT_TYPE_BOOLEAN,
         'refresh' => SMOPT_REFRESH_FOLDERLIST
     );
 
-    $optvals[] = array(
+    $optvals[SMOPT_GRP_FOLDERLIST][] = array(
         'name'    => 'date_format',
         'caption' => _("Show Clock on Folders Panel"),
         'type'    => SMOPT_TYPE_STRLIST,
                             '6' => _("No Clock")),
     );
 
-    $optvals[] = array(
+    $optvals[SMOPT_GRP_FOLDERLIST][] = array(
         'name'    => 'hour_format',
         'caption' => _("Hour Format"),
         'type'    => SMOPT_TYPE_STRLIST,
                            SMPREF_TIME_24HR => _("24-hour clock")) 
     );
 
+    $optvals[SMOPT_GRP_FOLDERLIST][] = array(
+        'name'    => 'search_memory',
+        'caption' => _("Memory Search"),
+        'type'    => SMOPT_TYPE_STRLIST,
+        'refresh' => SMOPT_REFRESH_NONE,
+        'posvals' => array( 0 => _("Disabled"),
+                            1 => '1',
+                            2 => '2',
+                            3 => '3',
+                            4 => '4',
+                            5 => '5',
+                            6 => '6',
+                            7 => '7',
+                            8 => '8',
+                            9 => '9')
+    );
 
-    /* Build all these values into an array of SquirrelOptions objects. */
-    $options = createOptionArray($optvals);
+    /* Assemble all this together and return it as our result. */
+    $result = array(
+        'grps' => $optgrps,
+        'vals' => $optvals
+    );
+    return ($result);
+}
 
-    /* Print the row for each option. */
-    foreach ($options as $option) {
-        if ($option->type != SMOPT_TYPE_HIDDEN) {
-            echo "<TR>\n";
-            echo '  <TD ALIGN="RIGHT" VALIGN="MIDDLE" NOWRAP>'
-               . $option->caption . ":</TD>\n";
-            echo '  <TD>' . $option->createHTMLWidget() . "</TD>\n";
-            echo "</TR>\n";
-        } else {
-            echo $option->createHTMLWidget();
-        }
-    }
+/******************************************************************/
+/** Define any specialized save functions for this option page. ***/
+/******************************************************************/
+function save_option_trash_folder($option) {
+    global $data_dir, $username;
 
-   // if( $unseen_notify == '' )
-   //   $unseen_notify = '2';
+    /* Set move to trash on or off. */
+    $trash_on = ($option->new_value == SMPREF_NONE ? SMPREF_OFF : SMPREF_ON);
+    setPref($data_dir, $username, 'move_to_trash', $trash_on);
 
-                 
-   echo '<tr><td colspan=2><hr noshade></td></tr>';
-   do_hook("options_folders_inside");
-   OptionSubmit( 'submit_folder' );
-?>         
+    /* Now just save the option as normal. */
+    save_option($option);
+}
 
-      </table>
-   </form>
+function save_option_sent_folder($option) {
+    global $data_dir, $username;
 
-   <?php do_hook('options_folders_bottom'); ?>
+    /* Set move to sent on or off. */
+    $sent_on = ($option->new_value == SMPREF_NONE ? SMPREF_OFF : SMPREF_ON);
+    setPref($data_dir, $username, 'move_to_sent', $sent_on);
 
-    </td></tr>
-    </table>
+    /* Now just save the option as normal. */
+    save_option($option);
+}
 
-</td></tr>
-</table>
-</body></html>
+function save_option_draft_folder($option) {
+    global $data_dir, $username;
+
+    /* Set move to draft on or off. */
+    $draft_on = ($option->new_value == SMPREF_NONE ? SMPREF_OFF : SMPREF_ON);
+    setPref($data_dir, $username, 'save_as_draft', $draft_on);
+
+    /* Now just save the option as normal. */
+    save_option($option);
+}
+
+?>