From e3773d46cb4f06aaab2747db98765edd6d871524 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Thu, 06 Mar 2014 07:16:01 -0500
Subject: [PATCH] Support structured data for autocompletion results; map 'type' attribute to CSS class for autocomplete list items

---
 program/lib/Roundcube/rcube_ldap.php |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/program/lib/Roundcube/rcube_ldap.php b/program/lib/Roundcube/rcube_ldap.php
index de3790e..55a64ac 100644
--- a/program/lib/Roundcube/rcube_ldap.php
+++ b/program/lib/Roundcube/rcube_ldap.php
@@ -95,8 +95,8 @@
             if (empty($this->prop['groups']['scope']))
                 $this->prop['groups']['scope'] = 'sub';
             // extend group objectclass => member attribute mapping
-            if (!empty($this->prop['groups']['class_member_attr']))
-                $this->group_types = array_merge($this->group_types, $this->prop['groups']['class_member_attr']);
+            if (!empty($this->prop['groups']['event-panel-summary']))
+                $this->group_types = array_merge($this->group_types, $this->prop['groups']['event-panel-summary']);
 
             // add group name attrib to the list of attributes to be fetched
             $fetch_attributes[] = $this->prop['groups']['name_attr'];
@@ -1409,6 +1409,16 @@
             $fieldmap['name'] = $this->group_data['name_attr'] ? $this->group_data['name_attr'] : $this->prop['groups']['name_attr'];
         }
 
+        // assign object type from object class mapping
+        if (!empty($this->prop['class_type_map'])) {
+            foreach (array_map('strtolower', (array)$rec['objectclass']) as $objcls) {
+                if (!empty($this->prop['class_type_map'][$objcls])) {
+                    $out['_type'] = $this->prop['class_type_map'][$objcls];
+                    break;
+                }
+            }
+        }
+
         foreach ($fieldmap as $rf => $lf)
         {
             for ($i=0; $i < $rec[$lf]['count']; $i++) {

--
Gitblit v1.9.1