Branch 'roundcubemail-plugins-kolab-format2-horde5' - 2 commits - plugins/calendar plugins/libkolab

Thomas Brüderli bruederli at kolabsys.com
Wed May 1 09:25:59 CEST 2013


 plugins/calendar/drivers/kolab/kolab_calendar.php |   28 ++++++++++++++++++++--
 plugins/libkolab/lib/kolab_format_event.php       |    2 -
 2 files changed, 26 insertions(+), 4 deletions(-)

New commits:
commit e039141871ad2a91ba263ab9fdb726f0837f54ba
Author: Thomas Bruederli <thomas at roundcube.net>
Date:   Wed May 1 09:25:43 2013 +0200

    Remove unused code

diff --git a/plugins/libkolab/lib/kolab_format_event.php b/plugins/libkolab/lib/kolab_format_event.php
index 05f4ab1..c55654c 100644
--- a/plugins/libkolab/lib/kolab_format_event.php
+++ b/plugins/libkolab/lib/kolab_format_event.php
@@ -317,7 +317,6 @@ class kolab_format_event extends kolab_format
                 'email' => $rec['organizer']['smtp-address'],
                 'status' => 'ACCEPTED',
             );
-            $_attendees .= $rec['organizer']['display-name'] . ' ' . $rec['organizer']['smtp-address'] . ' ';
         }
 
         foreach ((array)$rec['attendee'] as $attendee) {
@@ -328,7 +327,6 @@ class kolab_format_event extends kolab_format
                 'status' => $this->kolab2_statusmap[$attendee['status']],
                 'rsvp' => $attendee['request-response'],
             );
-            $_attendees .= $rec['organizer']['display-name'] . ' ' . $rec['organizer']['smtp-address'] . ' ';
         }
 
         $this->data = array(


commit 9670666e3c724f18d961526d0125d67e4ab4a88b
Author: Thomas Bruederli <thomas at roundcube.net>
Date:   Wed May 1 09:12:35 2013 +0200

    Fix searching by attendees in calendar events (#1774)

diff --git a/plugins/calendar/drivers/kolab/kolab_calendar.php b/plugins/calendar/drivers/kolab/kolab_calendar.php
index 33aa551..8f95117 100644
--- a/plugins/calendar/drivers/kolab/kolab_calendar.php
+++ b/plugins/calendar/drivers/kolab/kolab_calendar.php
@@ -37,7 +37,7 @@ class kolab_calendar
   private $cal;
   private $events = array();
   private $imap_folder = 'INBOX/Calendar';
-  private $search_fields = array('title', 'description', 'location', '_attendees');
+  private $search_fields = array('title', 'description', 'location', 'attendees');
   private $sensitivity_map = array('public', 'private', 'confidential');
 
 
@@ -230,7 +230,7 @@ class kolab_calendar
       if (!empty($search)) {
         $hit = false;
         foreach ($this->search_fields as $col) {
-          $sval = is_array($col) ? $event[$col[0]][$col[1]] : $event[$col];
+          $sval = is_array($event[$col]) ? self::_complex2string($event[$col]) : $event[$col];
           if (empty($sval))
             continue;
           
@@ -544,5 +544,29 @@ class kolab_calendar
     return $event;
   }
 
+  /**
+   * Convert a complex event attribute to a string value
+   */
+  private static function _complex2string($prop)
+  {
+      static $ignorekeys = array('role','status','rsvp');
+
+      $out = '';
+      if (is_array($prop)) {
+          foreach ($prop as $key => $val) {
+              if (is_numeric($key)) {
+                  $out .= self::_complex2string($val, $fields);
+              }
+              else if (!in_array($key, $ignorekeys)) {
+                $out .= $val . ' ';
+            }
+          }
+      }
+      else if (is_string($prop) || is_numeric($prop)) {
+          $out .= $prop . ' ';
+      }
+
+      return rtrim($out);
+  }
 
 }





More information about the commits mailing list