Plugin may be invisible when JS is not detected
[squirrelmail.git] / plugins / newmail / newmail_opt.php
index c0a3b2a6675b006298f2ec573a36335a4bcb0156..f028ec60a37a2cb8be54e171652090e20fa435ad 100644 (file)
@@ -1,14 +1,13 @@
 <?php
-
 /**
- * newmails_opt.php
+ * newmails_opt.php - options page
  *
- * Copyright (c) 1999-2004 The SquirrelMail Project Team
+ * Copyright (c) 1999-2005 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * Displays all options relating to new mail sounds
  *
- * $Id$
+ * @version $Id$
  * @package plugins
  * @subpackage newmail
  */
 define('SM_PATH','../../');
 
 /* SquirrelMail required files. */
-require_once(SM_PATH . 'include/validate.php');
-require_once(SM_PATH . 'functions/page_header.php');
-require_once(SM_PATH . 'functions/display_messages.php');
-require_once(SM_PATH . 'functions/imap.php');
-require_once(SM_PATH . 'include/load_prefs.php');
+include_once(SM_PATH . 'include/validate.php');
+/* sqm_baseuri function */
+include_once(SM_PATH . 'functions/display_messages.php');
+/** Plugin functions (also loads plugin's config) */
+include_once(SM_PATH . 'plugins/newmail/functions.php');
 
 displayPageHeader($color, 'None');
 
-$media_enable = getPref($data_dir,$username, 'newmail_enable', 'FALSE' );
-$media_popup = getPref($data_dir, $username,'newmail_popup');
-$media_allbox = getPref($data_dir,$username,'newmail_allbox');
-$media_recent = getPref($data_dir,$username,'newmail_recent');
-$media_changetitle = getPref($data_dir,$username,'newmail_changetitle');
-$media = getPref($data_dir,$username,'newmail_media', '(none)');
-
-// Set $allowsound to false if you don't want sound files available
-$allowsound = "true";
+// plugin uses squirrelmail loading_pref hook.
+// vars are already loaded in include/validate.php
 
 echo html_tag( 'table', '', 'center', $color[0], 'width="95%" cellpadding="1" cellspacing="0" border="0"' ) . "\n" .
         html_tag( 'tr' ) . "\n" .
@@ -55,7 +47,7 @@ echo html_tag( 'p',
      html_tag( 'p',
         sprintf(_("Selecting the %s option will change the title in some browsers to let you know when you have new mail (requires JavaScript, and only works in IE but you won't see errors with other browsers). This will always tell you if you have new mail, even if you have %s enabled."), '&quot;'._("Change title on supported browsers").'&quot;', '&quot;'._("Count only messages that are RECENT").'&quot;')
      ) . "\n";
-if ($allowsound == "true") {
+if ($newmail_allowsound) {
     echo html_tag( 'p',
             sprintf(_("Select %s to turn on playing a media file when unseen mail is in your folders. When enabled, you can specify the media file to play in the provided file box."), '&quot;'._("Enable Media Playing").'&quot;')
          ) . "\n" .
@@ -68,67 +60,81 @@ echo '</td></tr>' .
         html_tag( 'tr' ) .
             html_tag( 'td', '', 'center', $color[4] ) . "\n" . '<hr style="width: 25%; height: 1px;" />' . "\n";
 
-echo '<form action="'.sqm_baseuri().'src/options.php" method="post">' . "\n" .
+echo '<form action="'.sqm_baseuri().'src/options.php" method="post" enctype="multipart/form-data">' . "\n" .
         html_tag( 'table', '', '', '', 'width="100%" cellpadding="5" cellspacing="0" border="0"' ) . "\n";
 
 // Option: media_allbox
 echo html_tag( 'tr' ) .
-        html_tag( 'td', _("Check all boxes, not just INBOX").':', 'right', '', 'nowrap' ) .
+        html_tag( 'td', _("Check all boxes, not just INBOX").':', 'right', '', 'style="white-space: nowrap;"' ) .
             html_tag( 'td', '', 'left' ) .
                 '<input type="checkbox" ';
-if ($media_allbox == 'on') {
+if ($newmail_allbox == 'on') {
     echo 'checked="checked" ';
 }
 echo 'name="media_allbox" /></td></tr>' . "\n";
 
 // Option: media_recent
 echo html_tag( 'tr' ) .
-        html_tag( 'td', _("Count only messages that are RECENT").':', 'right', '', 'nowrap' ) .
+        html_tag( 'td', _("Count only messages that are RECENT").':', 'right', '', 'style="white-space: nowrap;"' ) .
             html_tag( 'td', '', 'left' ) .
                 '<input type="checkbox" ';
-if ($media_recent == 'on') {
+if ($newmail_recent == 'on') {
     echo 'checked="checked" ';
 }
 echo 'name="media_recent" /></td></tr>' . "\n";
 
 // Option: media_changetitle
 echo html_tag( 'tr' ) .
-        html_tag( 'td', _("Change title on supported browsers").':', 'right', '', 'nowrap' ) .
+        html_tag( 'td', _("Change title on supported browsers").':', 'right', '', 'style="white-space: nowrap;"' ) .
             html_tag( 'td', '', 'left' ) .
                 '<input type="checkbox" ';
-if ($media_changetitle == 'on') {
+if ($newmail_changetitle == 'on') {
     echo 'checked="checked" ';
 }
-echo 'name="media_changetitle" />&nbsp;('._("requires JavaScript to work").')</td></tr>' . "\n";
+echo 'name="media_changetitle" />&nbsp;<small>('._("requires JavaScript to work").')</small></td></tr>' . "\n";
 
 // Option: media_popup
 echo html_tag( 'tr' ) .
-        html_tag( 'td', _("Show popup window on new mail").':', 'right', '', 'nowrap' ) .
+        html_tag( 'td', _("Show popup window on new mail").':', 'right', '', 'style="white-space: nowrap;"' ) .
             html_tag( 'td', '', 'left' ) .
                 '<input type="checkbox" ';
-if($media_popup == 'on') {
+if($newmail_popup == 'on') {
     echo 'checked="checked" ';
 }
-echo 'name="media_popup" />&nbsp;('._("requires JavaScript to work").')</td></tr>' . "\n";
-
-if ($allowsound == "true") {
+echo 'name="media_popup" />&nbsp;<small>('._("requires JavaScript to work").')</small></td></tr>' . "\n";
+
+echo html_tag( 'tr' )
+     . html_tag('td',_("Width of popup window:"),'right','', 'style="white-space: nowrap;"')
+     . html_tag('td','<input type="text" name="popup_width" value="' 
+                . (int)$newmail_popup_width . '" size="3" maxlengh="3" />'
+                . '&nbsp;<small>(' . _("If set to 0, reverts to default value") . ')</small>','left')
+     . "</tr>\n";
+
+echo html_tag( 'tr' )
+     . html_tag('td',_("Height of popup window:"),'right','', 'style="white-space: nowrap;"')
+     . html_tag('td','<input type="text" name="popup_height" value="' 
+                . (int)$newmail_popup_height . '" size="3" maxlengh="3" />'
+                . '&nbsp;<small>(' . _("If set to 0, reverts to default value") . ')</small>','left')
+     . "</tr>\n";
+
+if ($newmail_allowsound) {
 // Option: media_enable
     echo html_tag( 'tr' ) .
-            html_tag( 'td', _("Enable Media Playing").':', 'right', '', 'nowrap' ) .
+            html_tag( 'td', _("Enable Media Playing").':', 'right', '', 'style="white-space: nowrap;"' ) .
                 html_tag( 'td', '', 'left' ) .
                     '<input type="checkbox" ';
-    if ($media_enable == 'on') {
+    if ($newmail_enable == 'on') {
         echo 'checked="checked" ';
     }
     echo 'name="media_enable" /></td></tr>' . "\n";
 
 // Option: media_sel
     echo html_tag( 'tr' ) .
-        html_tag( 'td', _("Select server file").':', 'right', '', 'nowrap' ) .
+        html_tag( 'td', _("Select server file").':', 'right', '', 'style="white-space: nowrap;"' ) .
             html_tag( 'td', '', 'left' ) .
                 '<select name="media_sel">' . "\n" .
                     '<option value="(none)"';
-    if ( $media == '(none)') {
+    if ( $newmail_media == '(none)') {
         echo 'selected="selected" ';
     }
     echo '>' . _("(none)") . '</option>' .  "\n";
@@ -138,7 +144,7 @@ if ($allowsound == "true") {
         $fname = get_location () . '/sounds/' . $entry;
         if ($entry != '..' && $entry != '.' && $entry != 'CVS') {
             echo '<option ';
-            if ($fname == $media) {
+            if ($fname == $newmail_media) {
                 echo 'selected="selected" ';
             }
             echo 'value="' . htmlspecialchars($fname) . '">' .
@@ -146,17 +152,61 @@ if ($allowsound == "true") {
         }
     }
     $d->close();
-    $media_output = ($media == '(none)') ? _("(none)") : substr($media, strrpos($media, '/')+1);
+    // display media selection
+    foreach($newmail_mmedia as $newmail_mm_name => $newmail_mm_data) {
+        echo '<option ';
+        if ($newmail_media=='mmedia_' . $newmail_mm_name) {
+            echo 'selected="selected" ';
+        }
+        echo 'value="mmedia_' . $newmail_mm_name . '">'
+            .htmlspecialchars($newmail_mm_name) . "</option>\n";
+    }
+    // display local file option
+    echo '<option ';
+    if ($newmail_media=='(userfile)') {
+        echo 'selected="selected" ';
+    }
+    echo 'value="(userfile)">'.
+        _("uploaded media file") . "</option>\n";
+    // end of local file option
+
+    // Set media file name
+    if ($newmail_media == '(none)') {
+        $media_output = _("none");
+    } elseif ($newmail_media == '(userfile)') {
+        $media_output = basename($newmail_userfile_name);
+    } elseif (preg_match("/^mmedia_+/",$newmail_media)) {
+        $media_output = preg_replace("/^mmedia_/",'',$newmail_media);
+    } else {
+        $media_output = substr($newmail_media, strrpos($newmail_media, '/')+1);
+    }
+
     echo '</select>'.
-        '<input type="submit" value="' . _("Try") . '" name="test" onClick="' .
+        '<input type="submit" value="' . _("Try") . '" name="test" onclick="' .
             "window.open('testsound.php?sound='+media_sel.options[media_sel.selectedIndex].value, 'TestSound'," .
             "'width=150,height=30,scrollbars=no');" .
             'return false;' .
-            ' /"></td></tr>' .
-            html_tag( 'tr', "\n" .
-                html_tag( 'td', _("Current File:"), 'right', '', 'nowrap' ) .
+            '" /></td></tr>';
+    echo  html_tag('tr')
+        . html_tag('td',_("Upload Media File:"),'right','','style="white-space: nowrap;"')
+        . html_tag('td','<input type="file" size="40" name="media_file">')
+        . "</tr>\n";
+
+    echo  html_tag('tr')
+        . html_tag('td',_("Uploaded Media File:"),'right','','style="white-space: nowrap;"')
+        . html_tag('td',($newmail_userfile_name!='' ? htmlspecialchars($newmail_userfile_name) : _("unavailable")))
+        ."</tr>\n";
+
+    if ($newmail_userfile_name!='') {
+        echo '<tr>'
+            .'<td colspan="2" align="center">'
+            .sprintf(_("Media file %s will be removed, if you upload other media file."),basename($newmail_userfile_name))
+            .'</td></tr>';
+    }
+    echo html_tag( 'tr', "\n" .
+                html_tag( 'td', _("Current File:"), 'right', '', 'style="white-space: nowrap;"' ) .
                     html_tag( 'td', '<input type="hidden" value="' .
-                        htmlspecialchars($media) . '" name="media_default" />' .
+                        htmlspecialchars($newmail_media) . '" name="media_default" />' .
                         htmlspecialchars($media_output) . '', 'left' )
              ) . "\n";
 }
@@ -164,8 +214,9 @@ echo html_tag( 'tr', "\n" .
     html_tag( 'td', '&nbsp;' ) .
         html_tag( 'td',
             '<input type="hidden" name="optmode" value="submit" />' .
+            '<input type="hidden" name="optpage" value="newmail" />' .
             '<input type="submit" value="' . _("Submit") . '" name="submit_newmail" />',
         'left' )
      ) . "\n";
 ?>
-</table></form></td></tr></table></td></tr></table></body></html>
+</table></form></td></tr></table></td></tr></table></body></html>
\ No newline at end of file