diff options
author | alecpl <alec@alec.pl> | 2012-02-07 09:42:51 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2012-02-07 09:42:51 +0000 |
commit | 735bf7c3e1c02086aa2fa6a07e124090d7c90926 (patch) | |
tree | 26da8cb446d571437b2ca4642fe18e517e45ac06 | |
parent | 06ca480d1e12b56b652827a89982b22770a69d50 (diff) |
- Backported r5859 fix
-rw-r--r-- | plugins/newmail_notifier/newmail_notifier.php | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/plugins/newmail_notifier/newmail_notifier.php b/plugins/newmail_notifier/newmail_notifier.php index 01e25984d..f9af72d2f 100644 --- a/plugins/newmail_notifier/newmail_notifier.php +++ b/plugins/newmail_notifier/newmail_notifier.php @@ -3,13 +3,13 @@ /** * New Mail Notifier plugin * - * Supports two methods of notification: + * Supports three methods of notification: * 1. Basic - focus browser window and change favicon * 2. Sound - play wav file * 3. Desktop - display desktop notification (using webkitNotifications feature, * supported by Chrome and Firefox with 'HTML5 Notifications' plugin) * - * @version 0.3 + * @version 0.4 * @author Aleksander Machniak <alec@alec.pl> * * @@ -132,10 +132,31 @@ class newmail_notifier extends rcube_plugin */ function notify($args) { + // Already notified or non-automatic check if ($this->notified || !empty($_GET['_refresh'])) { return $args; } + // Get folders to skip checking for + if (empty($this->exceptions)) { + $this->delimiter = $this->rc->imap->get_hierarchy_delimiter(); + foreach (array('drafts_mbox', 'sent_mbox') as $folder) { + $folder = $this->rc->config->get($folder); + if (strlen($folder) && $folder != 'INBOX') { + $this->exceptions[] = $folder; + } + } + } + + $mbox = $args['mailbox']; + + // Skip exception (sent/drafts) folders (and their subfolders) + foreach ($this->exceptions as $folder) { + if (strpos($mbox.$this->delimiter, $folder.$this->delimiter) === 0) { + return $args; + } + } + $this->notified = true; // Load configuration |