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