Plugin may be invisible when JS is not detected
[squirrelmail.git] / plugins / newmail / newmail_opt.php
index 87426a49a328e7d65355c51f7f66ab8ae9d12e78..f028ec60a37a2cb8be54e171652090e20fa435ad 100644 (file)
 <?php
+/**
+ * newmails_opt.php - options page
+ *
+ * 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
+ *
+ * @version $Id$
+ * @package plugins
+ * @subpackage newmail
+ */
 
-   /**
-    **  newmails_opt.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 new mail sounds
-    **
-    **  $Id$
-    **
-    **/
-
-    chdir('..');
-    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 . 'functions/array.php');
-    require_once(SM_PATH . 'src/load_prefs.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', '../plugins/newmail/sounds/Notify.wav');
-
-    // Set $allowsound to false if you don't want sound files available
-    $allowsound = "true";
-
-    echo html_tag( 'table', '', 'center', '', 'width="95%" border="0" cellpadding="1" cellspacing="0"' ) . "\n" .
-             html_tag( 'tr', "\n" .
-                 html_tag( 'td', '<b>' . _("Options") . ' - ' . _("New Mail Notification") . '</b>', 'center', $color[0] )
-             ) . "\n" .
-             html_tag( 'tr' ) . "\n" .
-                 html_tag( 'td', '', 'left' );
-    if ($allowsound == "true") {
-        echo html_tag( 'p',
-            _("Select <b>Enable Media Playing</b> 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.")
-        ) . "\n";
-    }
+/** @ignore */
+define('SM_PATH','../../');
+
+/* SquirrelMail required files. */
+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');
+
+// 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" .
+            html_tag( 'td', '', 'center' ) .
+                '<b>' . _("Options") . ' - ' . _("New Mail Notification") . "</b><br />\n" .
+                html_tag( 'table', '', '', '', 'width="100%" cellpadding="5" cellspacing="0" border="0"' ) . "\n" .
+                    html_tag( 'tr' ) . "\n" .
+                        html_tag( 'td', '', 'left', $color[4] ) . "<br />\n";
+
+echo html_tag( 'p',
+        sprintf(_("The %s option will check ALL of your folders for unseen mail, not just the inbox for notification."), '&quot;'._("Check all boxes, not just INBOX").'&quot;')
+     ) . "\n" .
+     html_tag( 'p',
+        sprintf(_("Selecting the %s option will enable the showing of a popup window when unseen mail is in your folders (requires JavaScript)."), '&quot;'._("Show popup window on new mail").'&quot;')
+     ) . "\n" .
+     html_tag( 'p',
+        sprintf(_("Use the %s option to only check for messages that are recent. Recent messages are those that have just recently showed up and have not been \"viewed\" or checked yet. This can prevent being continuously annoyed by sounds or popups for unseen mail."), '&quot;'._("Count only messages that are RECENT").'&quot;')
+     ) . "\n" .
+     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 ($newmail_allowsound) {
     echo html_tag( 'p',
-                _("The <b>Check all boxes, not just INBOX</b> option will check ALL of your folders for unseen mail, not just the inbox for notification.")
-            ) . "\n" .
-            html_tag( 'p',
-               _("Selecting the <b>Show popup</b> option will enable the showing of a popup window when unseen mail is in your folders (requires JavaScript).")
-           ) . "\n" .
-           html_tag( 'p',
-               _("Use the <b>Check RECENT</b> to only check for messages that are recent. Recent messages are those that have just recently showed up and have not been \"viewed\" or checked yet.  This can prevent being continuously annoyed by sounds or popups for unseen mail.")
-           ) . "\n" .
-           html_tag( 'p',
-               _("Selecting the <b>Change title</b> 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 <b>Check RECENT</b> enabled.")
-           );
-    if ($allowsound == "true") {
-        echo html_tag( 'p',
-                    _("Select from the list of <b>server files</b> the media file to play when new mail arrives.  Selecting <b>local media</b> will play the file specified in the <b>local media file</b> box to play from the local computer.  If no file is specified, the system will use a default from the server.")
-               ) . "\n";
-    }
-    echo '<form action="../../src/options.php" method=post>'.
-         html_tag( 'table', '', '', '', 'width="100%" cellpadding="0" cellspacing="2" border="0"' ) . "\n" .
-             html_tag( 'tr' ) . "\n" .
-                 html_tag( 'td', '&nbsp', 'right', '', 'nowrap' ) . "\n";
-    if ($allowsound == "true") {
-                echo html_tag( 'td', '', 'left' ) .
-                            '<input type="checkbox" ';
-        if ($media_enable == 'on') {
-                echo 'checked ';
-        }
-        echo 'name="media_enable"><b> ' . _("Enable Media Playing") . '</b></td>'.
-                '</tr>' . "\n";
-    }  
-            echo html_tag( 'tr' ) . "\n" .
-                html_tag( 'td', '&nbsp', 'right', '', 'nowrap' ) . "\n" .
-                html_tag( 'td', '', 'left' ) .
-                    '<input type="checkbox" ';
-    if ($media_allbox == 'on') {
-              echo 'checked ';
-    }
-    echo 'name="media_allbox"><b> ' . _("Check all boxes, not just INBOX") . '</b></td>'.
-            '</tr>'.  "\n" .
-            html_tag( 'tr' ) . "\n" .
-                html_tag( 'td', '&nbsp', 'right', '', 'nowrap' ) . "\n" .
-                html_tag( 'td', '', 'left' ) .
-                    '<input type="checkbox" ';
-    if ($media_recent == 'on') {
-              echo 'checked ';
-    }
-    echo 'name="media_recent"><b> ' . _("Count only messages that are RECENT") . '</b></td>'.
-            '</tr>'. "\n" .
-            html_tag( 'tr' ) . "\n" .
-                html_tag( 'td', '&nbsp', 'right', '', 'nowrap' ) . "\n" .
-                html_tag( 'td', '', 'left' ) .
-                    '<input type="checkbox" ';
-    if ($media_changetitle == 'on') {
-              echo 'checked ';
-    }
-    echo 'name="media_changetitle"><b> ' . _("Change title on supported browsers.") . '</b> &nbsp; (' . _("requires JavaScript to work") . ')</td>'.
-            '</tr>'. "\n" .
-            html_tag( 'tr' ) . "\n" .
-                html_tag( 'td', '&nbsp', 'right', '', 'nowrap' ) . "\n" .
+            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" .
+         html_tag( 'p',
+            sprintf(_("Select from the list of %s the media file to play when new mail arrives. If no file is specified, %s, no sound will be used."), '&quot;'._("Select server file").'&quot;', '&quot;'._("(none)").'&quot;')
+         ) . "\n";
+}
+
+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" 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', '', 'style="white-space: nowrap;"' ) .
+            html_tag( 'td', '', 'left' ) .
+                '<input type="checkbox" ';
+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', '', 'style="white-space: nowrap;"' ) .
+            html_tag( 'td', '', 'left' ) .
+                '<input type="checkbox" ';
+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', '', 'style="white-space: nowrap;"' ) .
+            html_tag( 'td', '', 'left' ) .
+                '<input type="checkbox" ';
+if ($newmail_changetitle == 'on') {
+    echo 'checked="checked" ';
+}
+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', '', 'style="white-space: nowrap;"' ) .
+            html_tag( 'td', '', 'left' ) .
+                '<input type="checkbox" ';
+if($newmail_popup == 'on') {
+    echo 'checked="checked" ';
+}
+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', '', 'style="white-space: nowrap;"' ) .
                 html_tag( 'td', '', 'left' ) .
                     '<input type="checkbox" ';
-    if($media_popup == 'on') {
-              echo 'checked ';
+    if ($newmail_enable == 'on') {
+        echo 'checked="checked" ';
     }
-    echo 'name="media_popup"><b> ' . _("Show popup window on new mail") . '</b> &nbsp; (' . _("requires JavaScript to work") . ')</td>'.
-            '</tr>' . "\n";
-    if ($allowsound == "true") {
-            echo html_tag( 'tr' ) . "\n" .
-                        html_tag( 'td', _("Select server file:"), 'right', '', 'nowrap' ) . "\n" .
-                        html_tag( 'td', '', 'left' ) .
-                            '<select name="media_sel">'.  "\n" .
-                            '<option value="(local media)">' . _("(local media)") . '</option>' .  "\n";
+    echo 'name="media_enable" /></td></tr>' . "\n";
 
+// Option: media_sel
+    echo html_tag( 'tr' ) .
+        html_tag( 'td', _("Select server file").':', 'right', '', 'style="white-space: nowrap;"' ) .
+            html_tag( 'td', '', 'left' ) .
+                '<select name="media_sel">' . "\n" .
+                    '<option value="(none)"';
+    if ( $newmail_media == '(none)') {
+        echo 'selected="selected" ';
+    }
+    echo '>' . _("(none)") . '</option>' .  "\n";
     // Iterate sound files for options
-
-    $d = dir('../plugins/newmail/sounds');
+    $d = dir(SM_PATH . 'plugins/newmail/sounds');
     while($entry=$d->read()) {
-        $fname = $d->path . "/" . $entry;
-        if ($entry != '..' && $entry != '.') {
-            echo "<option ";
-            if ($fname == $media) {
-                echo "selected ";
+        $fname = get_location () . '/sounds/' . $entry;
+        if ($entry != '..' && $entry != '.' && $entry != 'CVS') {
+            echo '<option ';
+            if ($fname == $newmail_media) {
+                echo 'selected="selected" ';
             }
-            echo "value=\"" . $fname . "\">" . $entry . "</option>\n";
+            echo 'value="' . htmlspecialchars($fname) . '">' .
+                htmlspecialchars($entry) . "</option>\n";
         }
     }
     $d->close();
-    echo '</select>'.
-               '<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', _("Local Media File:"), 'right', '', 'nowrap' ) .
-             html_tag( 'td', '<input type="file" size="40" name="media_file">', 'left' )
-         ) . "\n" .
-         html_tag( 'tr', "\n" .
-             html_tag( 'td', _("Current File:"), 'right', '', 'nowrap' ) .
-             html_tag( 'td', '<input type="hidden" value="' . $media . '" name="media_default">' . $media . '', 'left' )
-         ) . "\n";
+    // 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 html_tag( 'tr', "\n" .
-                     html_tag( 'td', '&nbsp;' ) .
-                     html_tag( 'td',
-                         '<input type="hidden" name="optmode" value="submit">'. 
-                         '<input type="submit" value="' . _("Submit") . '" name="submit_newmail">',
-                     'left' )
-                 ) . "\n" .
-      '</table>'. "\n" .
-   '</form>'. "\n" .
-   '</td></tr></table>'. "\n" .
-'</body></html>';
 
+    echo '</select>'.
+        '<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>';
+    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($newmail_media) . '" name="media_default" />' .
+                        htmlspecialchars($media_output) . '', 'left' )
+             ) . "\n";
+}
+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>
\ No newline at end of file