CRM-13335
authorDeepak Srivastava <deepak.srivastava@webaccess.co.in>
Wed, 4 Sep 2013 12:00:48 +0000 (17:30 +0530)
committerDeepak Srivastava <deepak.srivastava@webaccess.co.in>
Wed, 4 Sep 2013 12:00:48 +0000 (17:30 +0530)
CRM/Logging/ReportDetail.php

index ed054a8ec7fd3474a2527f7b828ac4dfe244df8a..0ee0fad7094d135932eea8eae6717d1efa3385dd 100644 (file)
@@ -152,20 +152,24 @@ class CRM_Logging_ReportDetail extends CRM_Report_Form {
           continue;
         }
 
-        // CRM-7251: special-case preferred_communication_method
-        if ($field == 'preferred_communication_method') {
-          $froms = array();
-          $tos = array();
-          foreach (explode(CRM_Core_DAO::VALUE_SEPARATOR, $from) as $val) $froms[] = CRM_Utils_Array::value($val, $values[$field]);
-          foreach (explode(CRM_Core_DAO::VALUE_SEPARATOR, $to) as $val) $tos[] = CRM_Utils_Array::value($val, $values[$field]);
+        // special-case for multiple values. Also works for CRM-7251: preferred_communication_method
+        if ((substr($from, 0, 1) == CRM_Core_DAO::VALUE_SEPARATOR && 
+            substr($from, -1, 1) == CRM_Core_DAO::VALUE_SEPARATOR) || 
+          (substr($to, 0, 1) == CRM_Core_DAO::VALUE_SEPARATOR && 
+            substr($to, -1, 1) == CRM_Core_DAO::VALUE_SEPARATOR)) {
+          $froms = $tos = array();
+          foreach (explode(CRM_Core_DAO::VALUE_SEPARATOR, trim($from, CRM_Core_DAO::VALUE_SEPARATOR)) as $val) {
+            $froms[] = CRM_Utils_Array::value($val, $values[$field]);
+          }
+          foreach (explode(CRM_Core_DAO::VALUE_SEPARATOR, trim($to, CRM_Core_DAO::VALUE_SEPARATOR)) as $val) {
+            $tos[] = CRM_Utils_Array::value($val, $values[$field]);
+          }
           $from = implode(', ', array_filter($froms));
-          $to = implode(', ', array_filter($tos));
+          $to   = implode(', ', array_filter($tos));
         }
 
         if (isset($values[$field][$from])) {
-
           $from = $values[$field][$from];
-
         }
         if (isset($values[$field][$to])) {
           $to = $values[$field][$to];