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