From ca39ef353cd3e0821babdd071acabd0111c99558 Mon Sep 17 00:00:00 2001
From: Chris Christensen <christian.christensen@gmail.com>
Date: Tue, 22 Mar 2011 10:32:48 -0500
Subject: [PATCH 1/2] Update messageing module to support multiple selection of send methods, by default.

---
 messaging.admin.inc |    2 +-
 messaging.module    |    8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/messaging.admin.inc b/messaging.admin.inc
index bc5f9bc..7892b23 100644
--- a/messaging.admin.inc
+++ b/messaging.admin.inc
@@ -246,7 +246,7 @@ function messaging_admin_settings() {
   );
   $form['general']['messaging_default_method'] = array(
     '#title' => t('Default send method'),
-    '#type' => 'radios',
+    '#type' => 'checkboxes',
     '#options' => $methods,
     '#default_value' => variable_get('messaging_default_method', ''),
   );
diff --git a/messaging.module b/messaging.module
index cabb3d2..1d44e81 100644
--- a/messaging.module
+++ b/messaging.module
@@ -130,7 +130,7 @@ function messaging_user($type, $edit, &$user, $category = NULL) {
           '#collapsible' => TRUE,
         );
         $form['messaging']['messaging_default'] = array(
-          '#type'          => 'select',
+          '#type'          => 'checkboxes',
           '#title'         => t('Default send method'),
           '#default_value' => messaging_method_default($user),
           '#options' => $list,
@@ -1211,7 +1211,11 @@ function _messaging_info($info, $method = NULL, $property = NULL, $default = NUL
   if ($method && $property) {
     return isset($info[$method][$property]) ? $info[$method][$property] : $default;
   } elseif ($method) {
-    return isset($info[$method]) ? $info[$method] : $default;
+    if (is_array($method)) {
+      return array_intersect_key($info, $method);
+    } else {
+      return isset($info[$method]) ? $info[$method] : $default;
+    }
   } elseif ($property) {
     // Get this property as a list indexed by method
     $props = array();
-- 
1.7.2.1


From 2e2c579752ccc62764f42f608e2f1bc114a2d498 Mon Sep 17 00:00:00 2001
From: Chris Christensen <christian.christensen@gmail.com>
Date: Tue, 22 Mar 2011 12:16:48 -0500
Subject: [PATCH 2/2] Add array filter to filter out unselected items from user object.

---
 messaging.module |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/messaging.module b/messaging.module
index 1d44e81..ff3f95f 100644
--- a/messaging.module
+++ b/messaging.module
@@ -544,7 +544,11 @@ function messaging_method_permission($method, $account = NULL) {
  */
 function messaging_method_default($account = NULL) {
   if ($account && !empty($account->messaging_default) && messaging_method_permission($account->messaging_default, $account)) {
-    return $account->messaging_default;
+    if (is_array($account->messaging_default)) {
+      return array_filter($account->messaging_default, create_function('$var', 'return $var;'));
+    } else {
+      return $account->messaging_default;
+    }
   }
   elseif ($method = variable_get('messaging_default_method', '')) {
     return $method;
-- 
1.7.2.1

