* too (with a plugin).
*
* $Id$
+ * @package plugins
+ * @subpackage newmail
*/
- function CheckNewMailboxSound($imapConnection, $mailbox, $real_box, $delimeter, $unseen, &$total_unseen) {
- global $folder_prefix, $trash_folder, $sent_folder;
- global $color, $move_to_sent, $move_to_trash;
- global $unseen_notify, $unseen_type, $newmail_allbox, $newmail_recent;
- global $newmail_changetitle;
+ /**
+ */
+ include_once(SM_PATH . 'functions/display_messages.php');
+
+ function CheckNewMailboxSound($imapConnection, $mailbox, $real_box, $delimeter, $unseen, &$total_new) {
+
+ global $folder_prefix, $trash_folder, $sent_folder,
+ $color, $move_to_sent, $move_to_trash,
+ $unseen_notify, $unseen_type, $newmail_allbox,
+ $newmail_recent, $newmail_changetitle;
$mailboxURL = urlencode($real_box);
- $unseen_found = 0;
+ $unseen = $recent = 0;
// Skip folders for Sent and Trash
if (($unseen_notify == 2 && $real_box == 'INBOX') ||
($unseen_notify == 3 && ($newmail_allbox == 'on' ||
$real_box == 'INBOX'))) {
- $unseen = sqimap_unseen_messages($imapConnection, $real_box);
- $total_unseen += $unseen;
-
+ $status = sqimap_status_messages( $imapConnection, $real_box);
if($newmail_recent == 'on') {
- $unseen = sqimap_mailbox_select( $imapConnection, $real_box, TRUE, TRUE);
+ $total_new += $status['RECENT'];
+ } else {
+ $total_new += $status['UNSEEN'];
}
-
- if ($unseen > 0) {
- $unseen_found = 1;
+ if ($total_new) {
+ return 1;
}
+
}
- return( $unseen_found );
+ return 0;
}
function squirrelmail_plugin_init_newmail() {
// Gets added to the user's OPTIONS page.
global $optpage_blocks;
- if ( !soupNazi() ) {
-
- /* Register Squirrelspell with the $optionpages array. */
+ if ( checkForJavascript() ) {
+ /* Register Squirrelspell with the $optionpages array. */
$optpage_blocks[] = array(
'name' => _("NewMail Options"),
- 'url' => '../plugins/newmail/newmail_opt.php',
+ 'url' => SM_PATH . 'plugins/newmail/newmail_opt.php',
'desc' => _("This configures settings for playing sounds and/or showing popup windows when new mail arrives."),
'js' => TRUE
);
}
function newmail_sav() {
-
- global $username,$data_dir;
- global $submit_newmail,$media_file,$media_reset,$media_enable,$media_popup;
- global $media_recent,$media_sel;
- global $media_allbox, $media_changetitle;
-
- if ( isset($submit_newmail) ) {
-
- if(isset($media_enable)) {
- setPref($data_dir,$username,'newmail_enable',$media_enable);
- } else {
- setPref($data_dir,$username,'newmail_enable','');
- }
- if(isset($media_popup)) {
- setPref($data_dir,$username,'newmail_popup',$media_popup);
- } else {
- setPref($data_dir,$username,'newmail_popup','');
- }
- if(isset($media_allbox)) {
- setPref($data_dir,$username,'newmail_allbox',$media_allbox);
- } else {
- setPref($data_dir,$username,'newmail_allbox','');
- }
- if(isset($media_recent)) {
- setPref($data_dir,$username,'newmail_recent',$media_recent);
+ global $data_dir, $username;
+
+ if ( sqgetGlobalVar('submit_newmail', $submit, SQ_POST) ) {
+ $media_enable = '';
+ $media_popup = '';
+ $media_allbox = '';
+ $media_recent = '';
+ $media_changetitle = '';
+ $media_sel = '';
+
+ sqgetGlobalVar('media_enable', $media_enable, SQ_POST);
+ sqgetGlobalVar('media_popup', $media_popup, SQ_POST);
+ sqgetGlobalVar('media_allbox', $media_allbox, SQ_POST);
+ sqgetGlobalVar('media_recent', $media_recent, SQ_POST);
+ sqgetGlobalVar('media_changetitle', $media_changetitle, SQ_POST);
+
+ setPref($data_dir,$username,'newmail_enable',$media_enable);
+ setPref($data_dir,$username,'newmail_popup', $media_popup);
+ setPref($data_dir,$username,'newmail_allbox',$media_allbox);
+ setPref($data_dir,$username,'newmail_recent',$media_recent);
+ setPref($data_dir,$username,'newmail_changetitle',$media_changetitle);
+
+ if( sqgetGlobalVar('media_sel', $media_sel, SQ_POST) &&
+ ($media_sel == '(none)' || $media_sel == '(local media)') ) {
+ removePref($data_dir,$username,'newmail_media');
} else {
- setPref($data_dir,$username,'newmail_recent','');
+ setPref($data_dir,$username,'newmail_media',$media_sel);
}
- if(isset($media_changetitle)) {
- setPref($data_dir,$username,'newmail_changetitle',$media_changetitle);
- } else {
- setPref($data_dir,$username,'newmail_changetitle','');
- }
- if(isset($media_sel)) {
- if($media_sel == '(local media)') {
- setPref($data_dir,$username,'newmail_media',StripSlashes($media_file));
- } else {
- setPref($data_dir,$username,'newmail_media',$media_sel);
- }
- } else {
- setPref($data_dir,$username,'newmail_media','');
- }
- echo '<center> ' . _("New Mail Notification options saved") . '</center>';
+ echo html_tag( 'p', _("New Mail Notification options saved"), 'center' );
}
}
$newmail_recent = getPref($data_dir,$username,'newmail_recent');
$newmail_enable = getPref($data_dir,$username,'newmail_enable');
- $newmail_media = getPref($data_dir, $username, 'newmail_media', '../plugins/newmail/sounds/Notify.wav');
+ $newmail_media = getPref($data_dir, $username, 'newmail_media', '(none)');
$newmail_popup = getPref($data_dir, $username, 'newmail_popup');
$newmail_allbox = getPref($data_dir, $username, 'newmail_allbox');
$newmail_changetitle = getPref($data_dir, $username, 'newmail_changetitle');
function newmail_plugin() {
- global $username,$key,$imapServerAddress,$imapPort;
- global $newmail_media,$newmail_enable,$newmail_popup,$newmail_recent;
- global $newmail_changetitle;
- global $imapConnection;
+ global $username, $key, $imapServerAddress, $imapPort,
+ $newmail_media, $newmail_enable, $newmail_popup,
+ $newmail_recent, $newmail_changetitle, $imapConnection, $PHP_SELF;
if ($newmail_enable == 'on' ||
$newmail_popup == 'on' ||
$line = '';
$mailbox = $boxes[$i]['formatted'];
- if (! isset($boxes[$i]['unseen']))
+ if (! isset($boxes[$i]['unseen'])) {
$boxes[$i]['unseen'] = '';
+ }
if ($boxes[$i]['flags']) {
$noselect = false;
for ($h = 0; $h < count($boxes[$i]['flags']); $h++) {
- if (strtolower($boxes[$i]["flags"][$h]) == 'noselect')
+ if (strtolower($boxes[$i]["flags"][$h]) == 'noselect') {
$noselect = TRUE;
+ }
}
if (! $noselect) {
- $status = $status + CheckNewMailboxSound($imapConnection, $mailbox,
- $boxes[$i]['unformatted'], $delimeter, $boxes[$i]['unseen'],
- $totalNew);
+ $status += CheckNewMailboxSound($imapConnection,
+ $mailbox,
+ $boxes[$i]['unformatted'],
+ $delimeter,
+ $boxes[$i]['unseen'],
+ $totalNew);
}
} else {
- $status = $status + CheckNewMailboxSound($imapConnection, $mailbox, $boxes[$i]['unformatted'],
- $delimeter, $boxes[$i]['unseen'], $totalNew);
+ $status += CheckNewMailboxSound($imapConnection,
+ $mailbox,
+ $boxes[$i]['unformatted'],
+ $delimeter,
+ $boxes[$i]['unseen'],
+ $totalNew);
}
}
"function ChangeTitleLoad() {\n";
if( $totalNew > 1 || $totalNew == 0 ) {
echo 'window.parent.document.title = "' .
- sprintf(_("%s New Messages"), $totalNew ) .
+ sprintf(_("%s New Messages"), $totalNew ) .
"\";\n";
} else {
echo 'window.parent.document.title = "' .
- sprintf(_("%s New Message"), $totalNew ) .
+ sprintf(_("%s New Message"), $totalNew ) .
"\";\n";
}
echo "if (BeforeChangeTitle != null)\n".
"</script>\n";
}
- if ($status > 0 && $newmail_enable == 'on') {
- echo "<EMBED SRC=\"$newmail_media\" HIDDEN=TRUE AUTOSTART=TRUE>\n";
+ if ($totalNew > 0 && $newmail_enable == 'on' && $newmail_media != '' ) {
+ echo '<embed src="'.htmlspecialchars($newmail_media) .
+ "\" hidden=\"true\" autostart=\"true\">\n";
}
- if ($status >0 && $newmail_popup == 'on') {
- echo "<SCRIPT LANGUAGE=\"JavaScript\">\n".
+ if ($totalNew > 0 && $newmail_popup == 'on') {
+ echo "<script language=\"JavaScript\">\n".
"<!--\n".
"function PopupScriptLoad() {\n".
- 'window.open("../plugins/newmail/newmail.php", "SMPopup",'.
- "\"width=200,height=130,scrollbars=no\");\n".
- "if (BeforePopupScript != null)\n".
- "BeforePopupScript();\n".
+ 'window.open("'.sqm_baseuri().'plugins/newmail/newmail.php?numnew='.$totalNew.
+ '", "SMPopup",'.
+ "\"width=200,height=130,scrollbars=no\");\n".
+ "if (BeforePopupScript != null)\n".
+ "BeforePopupScript();\n".
"}\n".
"BeforePopupScript = window.onload;\n".
"window.onload = PopupScriptLoad;\n".
// More code from Tyler Akins
"// End -->\n".
"</script>\n";
-
}
}
}
-?>
+?>
\ No newline at end of file