From 3e2637351da9559a4aa420004ac90e9fe30477ef Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Mon, 14 Feb 2011 15:46:48 -0500
Subject: [PATCH] Fulltext search over contact fields. Attention: DATABASE SCHEMA CHANGED\!
---
program/include/rcube_addressbook.php | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/program/include/rcube_addressbook.php b/program/include/rcube_addressbook.php
index 648ef83..d1b0f62 100644
--- a/program/include/rcube_addressbook.php
+++ b/program/include/rcube_addressbook.php
@@ -32,6 +32,7 @@
const ERROR_NO_CONNECTION = 2;
const ERROR_INCOMPLETE = 3;
const ERROR_SAVING = 4;
+ const ERROR_SEARCH = 5;
/** public properties (mandatory) */
public $primary_key;
@@ -384,6 +385,26 @@
return $out;
}
+
+
+ /**
+ * Normalize the given string for fulltext search.
+ * Currently only optimized for Latin-1 characters; to be extended
+ *
+ * @param string Input string (UTF-8)
+ * @return string Normalized string
+ */
+ protected static function normalize_string($str)
+ {
+ $norm = strtolower(strtr(utf8_decode($str),
+ '��������������������������������������������������',
+ 'ccaaaaeeeeiiiaeooouuuyooaiounnaaaaaeeeiiioooouuuyy'));
+
+ return preg_replace(
+ array('/[\s;\+\-\/]+/i', '/(\d)\s+(\d)/', '/\s\w{1,3}\s/'),
+ array(' ', '\\1\\2', ' '),
+ $norm);
+ }
}
--
Gitblit v1.9.1