From 0456f728ee3f6312101d0a372b7385fb34fdaf2a Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Mon, 07 Apr 2014 11:30:12 -0400
Subject: [PATCH] Make UID extraction function globally availbale (for plugins)

---
 program/include/rcmail.php      |   31 +++++++++++++++
 program/steps/mail/func.inc     |   31 ---------------
 program/steps/mail/mark.inc     |    2 
 program/steps/mail/sendmail.inc |    4 +-
 program/steps/mail/copy.inc     |    2 
 program/steps/mail/move_del.inc |    4 +-
 6 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 7a6fb89..952e8a5 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -2010,6 +2010,37 @@
         return $size;
     }
 
+    /**
+     * Returns message UID(s) and IMAP folder(s) from GET/POST data
+     *
+     * @param  string UID value to decode
+     * @param  string Default mailbox value (if not encoded in UIDs)
+     * @return array  List of message UIDs per folder
+     */
+    public static function get_uids($uids = null, $mbox = null)
+    {
+        // message UID (or comma-separated list of IDs) is provided in
+        // the form of <ID>-<MBOX>[,<ID>-<MBOX>]*
+
+        $_uid  = $uids ?: get_input_value('_uid', RCUBE_INPUT_GPC);
+        $_mbox = $mbox ?: (string)get_input_value('_mbox', RCUBE_INPUT_GPC);
+
+        if (is_array($uid)) {
+            return $uid;
+        }
+
+        // create a per-folder UIDs array
+        $result = array();
+        foreach (explode(',', $_uid) as $uid) {
+            list($uid, $mbox) = explode('-', $uid, 2);
+            if (empty($mbox))
+                $mbox = $_mbox;
+            $result[$mbox][] = $uid;
+        }
+
+        return $result;
+    }
+
 
     /************************************************************************
      *********          Deprecated methods (to be removed)          *********
diff --git a/program/steps/mail/copy.inc b/program/steps/mail/copy.inc
index 0f7b1a0..79e207a 100644
--- a/program/steps/mail/copy.inc
+++ b/program/steps/mail/copy.inc
@@ -28,7 +28,7 @@
 if (!empty($_POST['_uid']) && strlen($_POST['_target_mbox'])) {
     $target = rcube_utils::get_input_value('_target_mbox', rcube_utils::INPUT_POST, true);
 
-    foreach (rcmail_get_uids() as $mbox => $uids) {
+    foreach (rcmail::get_uids() as $mbox => $uids) {
       $copied += (int)$RCMAIL->storage->copy_message($uids, $target, $mbox);
     }
 
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 4ff8fcb..7adc065 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -187,37 +187,6 @@
 
 
 /**
- * Returns message UID(s) and IMAP folder(s) from GET/POST data
- *
- * @param  string UID value to decode
- * @param  string Default mailbox value (if not encoded in UIDs)
- * @return array  List of message UIDs per folder
- */
-function rcmail_get_uids($uids = null, $mbox = null)
-{
-    // message UID (or comma-separated list of IDs) is provided in
-    // the form of <ID>-<MBOX>[,<ID>-<MBOX>]*
-
-    $_uid  = $uids ?: get_input_value('_uid', RCUBE_INPUT_GPC);
-    $_mbox = $mbox ?: (string)get_input_value('_mbox', RCUBE_INPUT_GPC);
-
-    if (is_array($uid)) {
-        return $uid;
-    }
-
-    // create a per-folder UIDs array
-    $result = array();
-    foreach (explode(',', $_uid) as $uid) {
-        list($uid, $mbox) = explode('-', $uid, 2);
-        if (empty($mbox))
-            $mbox = $_mbox;
-        $result[$mbox][] = $uid;
-    }
-
-    return $result;
-}
-
-/**
  * Returns default search mods
  */
 function rcmail_search_mods()
diff --git a/program/steps/mail/mark.inc b/program/steps/mail/mark.inc
index 50243c6..149bc8e 100644
--- a/program/steps/mail/mark.inc
+++ b/program/steps/mail/mark.inc
@@ -47,7 +47,7 @@
         $old_pages = ceil($old_count / $RCMAIL->storage->get_pagesize());
     }
 
-    foreach (rcmail_get_uids() as $mbox => $uids) {
+    foreach (rcmail::get_uids() as $mbox => $uids) {
         $marked += (int)$RCMAIL->storage->set_flag($uids, $flag, $mbox);
         $count += count($uids);
     }
diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc
index 26c7245..7df2259 100644
--- a/program/steps/mail/move_del.inc
+++ b/program/steps/mail/move_del.inc
@@ -35,7 +35,7 @@
     $target = rcube_utils::get_input_value('_target_mbox', rcube_utils::INPUT_POST, true);
     $trash  = $RCMAIL->config->get('trash_mbox');
 
-    foreach (rcmail_get_uids() as $mbox => $uids) {
+    foreach (rcmail::get_uids() as $mbox => $uids) {
         $moved += (int)$RCMAIL->storage->move_message($uids, $target, $mbox);
         $count += count($uids);
     }
@@ -56,7 +56,7 @@
 }
 // delete messages 
 else if ($RCMAIL->action=='delete' && !empty($_POST['_uid'])) {
-    foreach (rcmail_get_uids() as $mbox => $uids) {
+    foreach (rcmail::get_uids() as $mbox => $uids) {
         $del += (int)$RCMAIL->storage->delete_message($uids, $mbox);
         $count += count($uids);
     }
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 4fcc2b5..01a32a1 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -535,12 +535,12 @@
 
     // set replied/forwarded flag
     if ($COMPOSE['reply_uid']) {
-        foreach (rcmail_get_uids($COMPOSE['reply_uid'], $COMPOSE['mailbox']) as $mbox => $uids) {
+        foreach (rcmail::get_uids($COMPOSE['reply_uid'], $COMPOSE['mailbox']) as $mbox => $uids) {
             $RCMAIL->storage->set_flag($uids, 'ANSWERED', $mbox);
         }
     }
     else if ($COMPOSE['forward_uid']) {
-        foreach (rcmail_get_uids($COMPOSE['forward_uid'], $COMPOSE['mailbox']) as $mbox => $uids) {
+        foreach (rcmail::get_uids($COMPOSE['forward_uid'], $COMPOSE['mailbox']) as $mbox => $uids) {
             $RCMAIL->storage->set_flag($uids, 'FORWARDED', $mbox);
         }
     }

--
Gitblit v1.9.1