From 321069a79e4bc30540460ada71c5a025af04bd10 Mon Sep 17 00:00:00 2001 From: tokul Date: Sat, 25 Feb 2006 08:24:47 +0000 Subject: [PATCH] adding option to choose monitored folders. Monitoring according to $unseen_notify does not provide enough end user options. removing display_messages.php loading. sqm_baseuri() function is already loaded in 1.5.1+. main folder status code still needs some fixes. Status is incorrect, if plugin wants more data than $unseen_notify. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@10829 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- plugins/newmail/functions.php | 36 ++++++++++++++++++++++++--------- plugins/newmail/newmail_opt.php | 15 ++++++++++++-- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/plugins/newmail/functions.php b/plugins/newmail/functions.php index cea3de72..04b53c17 100644 --- a/plugins/newmail/functions.php +++ b/plugins/newmail/functions.php @@ -17,9 +17,9 @@ if (! defined('SM_PATH')) define('SM_PATH','../../'); /** - * sqm_baseuri() function for setups that don't load it by default + * SMPREF_UNSEEN_* constants */ -include_once(SM_PATH . 'functions/display_messages.php'); +include_once(SM_PATH . 'functions/constants.php'); /** file type defines */ define('SM_NEWMAIL_FILETYPE_WAV',2); @@ -93,6 +93,11 @@ function newmail_sav_function() { setPref($data_dir,$username,'newmail_popup_width',$popup_width); setPref($data_dir,$username,'newmail_popup_height',$popup_height); + if (sqgetGlobalVar('newmail_unseen_notify', $newmail_unseen_notify, SQ_POST)) { + $newmail_unseen_notify = (int) $newmail_unseen_notify; + setPref($data_dir,$username,'newmail_unseen_notify',$newmail_unseen_notify); + } + if( sqgetGlobalVar('media_sel', $media_sel, SQ_POST) && $media_sel == '(none)' ) { removePref($data_dir,$username,'newmail_media'); @@ -140,6 +145,7 @@ function newmail_pref_function() { global $newmail_recent, $newmail_changetitle; global $newmail_userfile_type, $newmail_userfile_name; global $newmail_popup_width, $newmail_popup_height; + global $newmail_unseen_notify; $newmail_recent = getPref($data_dir,$username,'newmail_recent'); $newmail_media_enable = getPref($data_dir,$username,'newmail_enable'); @@ -155,6 +161,8 @@ function newmail_pref_function() { $newmail_userfile_type = getPref($data_dir, $username, 'newmail_userfile_type'); $newmail_userfile_name = getPref($data_dir,$username,'newmail_userfile_name',''); + + $newmail_unseen_notify = getPref($data_dir,$username,'newmail_unseen_notify',0); } /** @@ -173,24 +181,34 @@ function newmail_set_loadinfo_function() { /* Receive the status of the folder and do something with it */ function newmail_folder_status($statusarr) { global $newmail_media_enable,$newmail_popup,$newmail_changetitle,$trash_folder, - $sent_folder,$totalNewArr,$unseen_notify, $newmail_recent; + $sent_folder,$totalNewArr, $newmail_unseen_notify, $unseen_notify, $newmail_recent; - //echo "GOT HOOK
";
-    //var_dump($statusarr);
-    //echo "

\n"; + /* if $newmail_unseen_notify is set to zero, plugin follows $unseen_notify */ + if ($newmail_unseen_notify == 0) + $newmail_unseen_notify = $unseen_notify; $mailbox=$statusarr['MAILBOX']; - if ($newmail_media_enable == 'on' || + if (($newmail_media_enable == 'on' || $newmail_popup == 'on' || - $newmail_changetitle == 'on') { + $newmail_changetitle == 'on') && + /** + * make sure that $newmail_unseen_notify is set to supported value, + * currently (1.5.2cvs) SMPREF_UNSEEN_NORMAL has highest integer value + * in SMPREF_UNSEEN constants + */ + ($newmail_unseen_notify > SMPREF_UNSEEN_NONE && $newmail_unseen_notify <= SMPREF_UNSEEN_NORMAL)) { // Skip folders for Sent and Trash + // TODO: make this optional if ($statusarr['MAILBOX'] == $sent_folder || $statusarr['MAILBOX'] == $trash_folder) { return 0; } - if ((($mailbox == 'INBOX') && ($unseen_notify == 2)) || ($unseen_notify == 3)) { + if ((($mailbox == 'INBOX') && ($newmail_unseen_notify == SMPREF_UNSEEN_INBOX)) || + ($newmail_unseen_notify == SMPREF_UNSEEN_SPECIAL && isSpecialMailbox($mailbox)) || + ($newmail_unseen_notify == SMPREF_UNSEEN_NORMAL && ! isSpecialMailbox($mailbox)) || + ($newmail_unseen_notify == SMPREF_UNSEEN_ALL)) { if (($newmail_recent == 'on') && (!empty($statusarr['RECENT']))) { $totalNewArr[$mailbox] = $statusarr['RECENT']; } elseif ($newmail_recent != 'on' && !empty($statusarr['UNSEEN'])) { diff --git a/plugins/newmail/newmail_opt.php b/plugins/newmail/newmail_opt.php index 73cdec94..8c62edd0 100644 --- a/plugins/newmail/newmail_opt.php +++ b/plugins/newmail/newmail_opt.php @@ -17,8 +17,8 @@ define('SM_PATH','../../'); /* SquirrelMail required files. */ include_once(SM_PATH . 'include/validate.php'); -/* sqm_baseuri function */ -include_once(SM_PATH . 'functions/display_messages.php'); +/* form functions */ +include_once(SM_PATH . 'functions/forms.php'); /** Plugin functions (also loads plugin's config) */ include_once(SM_PATH . 'plugins/newmail/functions.php'); @@ -61,6 +61,17 @@ echo '' . echo '
' . "\n" . html_tag( 'table', '', '', '', 'width="100%" cellpadding="5" cellspacing="0" border="0"' ) . "\n"; +/* newmail_unseen_notify */ +$newmail_unseen_opts = array( 0 => _("Follow folder preferences"), + SMPREF_UNSEEN_INBOX => _("INBOX"), + SMPREF_UNSEEN_ALL => _("All folders"), + SMPREF_UNSEEN_SPECIAL => _("Special folders"), + SMPREF_UNSEEN_NORMAL => _("Regular folders")); +echo html_tag('tr', + html_tag('td',_("Check for new messages in:"),'right', '', 'style="white-space: nowrap;"'). + html_tag('td',addSelect('newmail_unseen_notify',$newmail_unseen_opts,$newmail_unseen_notify,true),'left') + ); + // Option: media_recent echo html_tag( 'tr' ) . html_tag( 'td', _("Count only messages that are RECENT").':', 'right', '', 'style="white-space: nowrap;"' ) . -- 2.25.1