浏览代码

Last options commit for the evening. This one is dedicated to my wife and her colorful blanket. Time to go to bed! Woohoo!

thomppj 24 年之前
父节点
当前提交
57e2ca2781
共有 4 个文件被更改,包括 92 次插入114 次删除
  1. 9 9
      src/load_prefs.php
  2. 22 16
      src/options.php
  3. 2 4
      src/options_display.php
  4. 59 85
      src/options_folder.php

+ 9 - 9
src/load_prefs.php

@@ -92,27 +92,27 @@
     global $trash_folder, $sent_folder, $draft_folder;
 
     /** Load special folder - trash **/
-    $new_trash_folder = getPref($data_dir, $username, 'trash_folder');
-    if (($new_trash_folder == '') && ($move_to_trash)) {
+    $load_trash_folder = getPref($data_dir, $username, 'trash_folder');
+    if (($load_trash_folder == '') && ($move_to_trash)) {
         $trash_folder = $folder_prefix . $trash_folder;
     } else {
-        $trash_folder = $new_trash_folder;
+        $trash_folder = $load_trash_folder;
     }
 
     /** Load special folder - sent **/
-    $new_sent_folder = getPref($data_dir, $username, 'sent_folder');
-    if (($new_sent_folder == '') && ($move_to_sent)) {
+    $load_sent_folder = getPref($data_dir, $username, 'sent_folder');
+    if (($load_sent_folder == '') && ($move_to_sent)) {
         $sent_folder = $folder_prefix . $sent_folder;
     } else {
-        $sent_folder = $new_sent_folder;
+        $sent_folder = $load_sent_folder;
     }
 
     /** Load special folder - draft **/
-    $new_draft_folder = getPref($data_dir, $username, 'draft_folder');
-    if (($new_draft_folder == '') && ($save_as_draft)) {
+    $load_draft_folder = getPref($data_dir, $username, 'draft_folder');
+    if (($load_draft_folder == '') && ($save_as_draft)) {
         $draft_folder = $folder_prefix . $draft_folder;
     } else {
-        $draft_folder = $new_draft_folder;
+        $draft_folder = $load_draft_folder;
     }
 
     global $show_num, $wrap_at, $left_size;

+ 22 - 16
src/options.php

@@ -112,28 +112,34 @@
         echo '<br><b>'._("Successfully saved display preferences!").'</b><br>';
         echo '<a href="../src/webmail.php?right_frame=options.php" target=_top>' . _("Refresh Page") . '</a><br>';
     } else if (isset($submit_folder)) { 
-        /* Save folder preferences. */
-        if ($trash != 'none') {
-            setPref($data_dir, $username, 'move_to_trash', true);
-           setPref($data_dir, $username, 'trash_folder', $trash);
+        /* Save trash folder preferences. */
+        if ($new_trash_folder != SMPREF_NONE) {
+            setPref($data_dir, $username, 'move_to_trash', SMPREF_ON);
+            setPref($data_dir, $username, 'trash_folder', $new_trash_folder);
         } else {
-            setPref($data_dir, $username, 'move_to_trash', '0');
-            setPref($data_dir, $username, 'trash_folder', 'none');
+            setPref($data_dir, $username, 'move_to_trash', SMPREF_OFF);
+            setPref($data_dir, $username, 'trash_folder', SMPREF_NONE);
         }
-        if ($sent != 'none') {
-            setPref($data_dir, $username, 'move_to_sent', true);
-            setPref($data_dir, $username, 'sent_folder', $sent);
+
+        /* Save sent folder preferences. */
+        if ($new_sent_folder != SMPREF_NONE) {
+            setPref($data_dir, $username, 'move_to_sent', SMPREF_ON);
+            setPref($data_dir, $username, 'sent_folder', $new_sent_folder);
         } else {
-            setPref($data_dir, $username, 'move_to_sent', '0');
-            setPref($data_dir, $username, 'sent_folder', 'none');
+            setPref($data_dir, $username, 'move_to_sent', SMPREF_OFF);
+            setPref($data_dir, $username, 'sent_folder', SMPREF_NONE);
         }
-        if ($draft != 'none') {
-            setPref($data_dir, $username, 'save_as_draft', true);
-            setPref($data_dir, $username, 'draft_folder', $draft);
+
+        /* Save draft folder preferences. */
+        if ($new_draft_folder != SMPREF_NONE) {
+            setPref($data_dir, $username, 'save_as_draft', SMPREF_ON);
+            setPref($data_dir, $username, 'draft_folder', $new_draft_folder);
         } else {
-            setPref($data_dir, $username, 'save_as_draft', '0');
-            setPref($data_dir, $username, 'draft_folder', 'none');
+            setPref($data_dir, $username, 'save_as_draft', SMPREF_OFF);
+            setPref($data_dir, $username, 'draft_folder', SMPREF_NONE);
         }
+
+        /* Save folder prefix preferences. */
         if (isset($folderprefix)) {
             setPref($data_dir, $username, 'folder_prefix', $folderprefix);
         } else {

+ 2 - 4
src/options_display.php

@@ -203,8 +203,8 @@
     foreach ($options as $option) {
         if ($option->type != SMOPT_TYPE_HIDDEN) {
             echo "<TR>\n";
-            echo '  <TD ALIGN="RIGHT" VALIGN="MIDDLE" NOWRAP><font color=red><b>'
-               . $option->caption . "</b></font>:</TD>\n";
+            echo '  <TD ALIGN="RIGHT" VALIGN="MIDDLE" NOWRAP>'
+               . $option->caption . ":</TD>\n";
             echo '  <TD>' . $option->createHTMLWidget() . "</TD>\n";
             echo "</TR>\n";
         } else {
@@ -212,8 +212,6 @@
         }
     }
 
-    /*** NOT YET CONVERTED TO OPTION OBJECTS ***/
-
    echo '<tr><td colspan=2><hr noshade></td></tr>';
    do_hook('options_display_inside');
    OptionSubmit( 'submit_display' );

+ 59 - 85
src/options_folder.php

@@ -49,90 +49,64 @@
          </tr>
 <?php }          
 
-   /* TRASH FOLDER */
-   echo '<tr><td nowrap align="right">';
-   echo _("Trash Folder:");
-   echo '</td><td>';
-      echo "<TT><SELECT NAME=trash>\n";
-      if ($move_to_trash == true) {
-         echo '<option value="none">' . _("Do not use Trash");
-      } else {
-         echo '<option value="none" selected>' . _("Do not use Trash");
-      }
- 
-      for ($i = 0; $i < count($boxes); $i++) {
-         $use_folder = true;
-         if (strtolower($boxes[$i]['unformatted']) == 'inbox') {
-            $use_folder = false;
-         }
-         if ($use_folder == true) {
-            $box = $boxes[$i]['unformatted-dm'];
-            $box2 = str_replace(' ', '&nbsp;', $boxes[$i]['formatted']);
-            if (($boxes[$i]['unformatted'] == $trash_folder) && ($move_to_trash == true))
-               echo "         <OPTION SELECTED VALUE=\"$box\">$box2\n";
-            else
-               echo "         <OPTION VALUE=\"$box\">$box2\n";
-         }
-      }
-      echo "</SELECT></TT>\n";
-   echo '</td></tr>';  
-
-
-   /* SENT FOLDER */
-   echo '<tr><td nowrap align="right">';
-   echo _("Sent Folder:");
-   echo '</td><td>';
-      echo '<TT><SELECT NAME="sent">' . "\n";
-      if ($move_to_sent == true)
-         echo '<option value="none">' . _("Do not use Sent");
-      else
-         echo "<option value=\"none\" selected>" . _("Do not use Sent");
- 
-      for ($i = 0; $i < count($boxes); $i++) {
-         $use_folder = true;
-         if (strtolower($boxes[$i]['unformatted']) == 'inbox') {
-            $use_folder = false;
-         }
-         if ($use_folder == true) {
-            $box = $boxes[$i]['unformatted-dm'];
-            $box2 = str_replace(' ', '&nbsp;', $boxes[$i]['formatted']);
-            if (($boxes[$i]['unformatted'] == $sent_folder) && ($move_to_sent == true))
-               echo "         <OPTION SELECTED VALUE=\"$box\">$box2\n";
-            else
-               echo "         <OPTION VALUE=\"$box\">$box2\n";
-         }
-      }
-      echo "</SELECT></TT>\n";
-   echo '</td></tr>';  
-
-   /* Drafts Folder. */
-   echo '<tr><td nowrap align="right">';
-   echo _("Drafts Folder:");
-   echo '</td><td>';
-   echo '<TT><SELECT NAME="draft">';
-   if ($save_as_draft == true)
-      echo '<option value="none">' . _("Do not use Drafts");
-   else
-      echo '<option value="none" selected>' . _("Do not use Drafts");
-
-   for ($i = 0; $i < count($boxes); $i++) {
-      $use_folder = true;
-      if (strtolower($boxes[$i]['unformatted']) == 'inbox') {
-         $use_folder = false;
-      }
-      if ($use_folder == true) {
-         $box = $boxes[$i]['unformatted-dm'];
-         $box2 = str_replace(' ', '&nbsp;', $boxes[$i]['formatted']);
-         $select_draft_value = rtrim($boxes[$i]['unformatted']);
-         if (($select_draft_value == $draft_folder) && ($save_as_draft == true)) {
-            echo "         <OPTION SELECTED VALUE=\"$box\">$box2\n";
-         } else {
-            echo "         <OPTION VALUE=\"$box\">$box2\n";
-         }
-      }
-   }
-   echo "</SELECT></TT>\n";
-   echo '</td></tr>';
+    /* Build a simple array into which we will build options. */
+    $optvals = array();
+
+    $special_folder_values = array();
+    foreach ($boxes as $folder) {
+        if (strtolower($folder['unformatted']) != 'inbox') {
+            $real_value = $folder['unformatted-dm'];
+            $disp_value = str_replace(' ', '&nbsp;', $folder['formatted']);
+            $special_folder_values[$real_value] = $disp_value;
+        }
+    }
+
+    $trash_none = array(SMPREF_NONE => _("Do not use Trash"));
+    $trash_folder_values = array_merge($trash_none, $special_folder_values);
+    $optvals[] = array(
+        'name'    => 'trash_folder',
+        'caption' => _("Trash Folder"),
+        'type'    => SMOPT_TYPE_STRLIST,
+        'refresh' => SMOPT_REFRESH_FOLDERLIST,
+        'posvals' => $trash_folder_values
+    );
+    
+    $sent_none = array(SMPREF_NONE => _("Do not use Sent"));
+    $sent_folder_values = array_merge($sent_none, $special_folder_values);
+    $optvals[] = array(
+        'name'    => 'sent_folder',
+        'caption' => _("Sent Folder"),
+        'type'    => SMOPT_TYPE_STRLIST,
+        'refresh' => SMOPT_REFRESH_FOLDERLIST,
+        'posvals' => $sent_folder_values
+    );
+    
+    $drafts_none = array(SMPREF_NONE => _("Do not use Drafts"));
+    $draft_folder_values = array_merge($draft_none, $special_folder_values);
+    $optvals[] = array(
+        'name'    => 'draft_folder',
+        'caption' => _("Draft Folder"),
+        'type'    => SMOPT_TYPE_STRLIST,
+        'refresh' => SMOPT_REFRESH_FOLDERLIST,
+        'posvals' => $draft_folder_values
+    );
+
+    /* Build all these values into an array of SquirrelOptions objects. */
+    $options = createOptionArray($optvals);
+
+    /* 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();
+        }
+    }
+
    // if( $unseen_notify == '' )
    //   $unseen_notify = '2';
    OptionRadio( _("Unseen message notification"),
@@ -182,4 +156,4 @@
 
 </td></tr>
 </table>
-</body></html>
+</body></html>