Branch 'roundcubemail-plugins-kolab-format2-horde5' - plugins/libkolab

Thomas Brüderli bruederli at kolabsys.com
Mon Mar 25 21:28:23 CET 2013


 plugins/libkolab/lib/kolab_format_event.php |   28 ++++++++++++++++++++++++++++
 plugins/libkolab/lib/kolab_format_task.php  |   20 +++++++++++++++++++-
 2 files changed, 47 insertions(+), 1 deletion(-)

New commits:
commit cfecfbd58f2810c01a1079e8fd98b705c84a6829
Author: Thomas Bruederli <thomas at roundcube.net>
Date:   Mon Mar 25 21:27:56 2013 +0100

    Provide words for fulltext search in event and task objects (#1714)

diff --git a/plugins/libkolab/lib/kolab_format_event.php b/plugins/libkolab/lib/kolab_format_event.php
index 35f8cf4..96fcac6 100644
--- a/plugins/libkolab/lib/kolab_format_event.php
+++ b/plugins/libkolab/lib/kolab_format_event.php
@@ -241,6 +241,34 @@ class kolab_format_event extends kolab_format
     }
 
     /**
+     * Callback for kolab_storage_cache to get words to index for fulltext search
+     *
+     * @return array List of words to save in cache
+     */
+    public function get_words()
+    {
+        $data = '';
+        foreach (self::$fulltext_cols as $colname) {
+            list($col, $field) = explode(':', $colname);
+
+            if ($field) {
+                $a = array();
+                foreach ((array)$this->data[$col] as $attr)
+                    $a[] = $attr[$field];
+                $val = join(' ', $a);
+            }
+            else {
+                $val = is_array($this->data[$col]) ? join(' ', $this->data[$col]) : $this->data[$col];
+            }
+
+            if (strlen($val))
+                $data .= $val . ' ';
+        }
+
+        return array_unique(rcube_utils::normalize_string($data, true));
+    }
+
+    /**
      * Load data from old Kolab2 format
      */
     public function fromkolab2($rec)
diff --git a/plugins/libkolab/lib/kolab_format_task.php b/plugins/libkolab/lib/kolab_format_task.php
index 9b7f142..02b32b3 100644
--- a/plugins/libkolab/lib/kolab_format_task.php
+++ b/plugins/libkolab/lib/kolab_format_task.php
@@ -28,7 +28,7 @@ class kolab_format_task extends kolab_format
 
     protected $xmltype = 'task';
 
-    public static $fulltext_cols = array('title', 'description', 'location', 'attendees:name', 'attendees:email', 'categories');
+    public static $fulltext_cols = array('title', 'description', 'location', 'categories');
 
     // Kolab 2 format field map
     private $kolab2_fieldmap = array(
@@ -160,4 +160,22 @@ console($this->data, $this->kolab_object);
 
         return $tags;
     }
+
+    /**
+      * Callback for kolab_storage_cache to get words to index for fulltext search
+      *
+      * @return array List of words to save in cache
+      */
+     public function get_words()
+     {
+         $data = '';
+         foreach (self::$fulltext_cols as $col) {
+             $val = is_array($this->data[$col]) ? join(' ', $this->data[$col]) : $this->data[$col];
+             if (strlen($val))
+                 $data .= $val . ' ';
+         }
+
+         return array_unique(rcube_utils::normalize_string($data, true));
+     }
+
 }





More information about the commits mailing list