From b4e41f006b26fbb0d372eca5b0636a886dbc571f Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 24 Jan 2012 02:35:33 -0500
Subject: [PATCH] Show hidden compose header fileds if non-empty (#1488320)
---
program/include/rcube_ldap.php | 25 +++++++++++++++----------
1 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/program/include/rcube_ldap.php b/program/include/rcube_ldap.php
index b25751c..0d7b7d5 100644
--- a/program/include/rcube_ldap.php
+++ b/program/include/rcube_ldap.php
@@ -6,7 +6,10 @@
| This file is part of the Roundcube Webmail client |
| Copyright (C) 2006-2011, The Roundcube Dev Team |
| Copyright (C) 2011, Kolab Systems AG |
- | Licensed under the GNU GPL |
+ | |
+ | Licensed under the GNU General Public License version 3 or |
+ | any later version with exceptions for skins & plugins. |
+ | See the README file for a full license statement. |
| |
| PURPOSE: |
| Interface to an LDAP address directory |
@@ -176,7 +179,7 @@
$host = idn_to_ascii(rcube_parse_host($host));
$hostname = $host.($this->prop['port'] ? ':'.$this->prop['port'] : '');
- $this->_debug("C: Connect [$hostname]");
+ $this->_debug("C: Connect [$hostname] [{$this->prop['name']}]");
if ($lc = @ldap_connect($host, $this->prop['port']))
{
@@ -870,10 +873,8 @@
// The filter is not set, set it.
$this->filter = $this->prop['filter'];
}
- $this->_exec_search(true);
- if ($this->ldap_result) {
- $count = ldap_count_entries($this->conn, $this->ldap_result);
- }
+
+ $count = (int) $this->_exec_search(true);
}
return new rcube_result_set($count, ($this->list_page-1) * $this->page_size);
@@ -1027,7 +1028,7 @@
$dn = self::dn_encode($dn);
// add new contact to the selected group
- if ($this->groups)
+ if ($this->group_id)
$this->add_to_group($this->group_id, $dn);
return $dn;
@@ -1320,12 +1321,13 @@
if (!($value = $rec[$lf][$i]))
continue;
+ list($col, $subtype) = explode(':', $rf);
$out['_raw_attrib'][$lf][$i] = $value;
if ($rf == 'email' && $this->mail_domain && !strpos($value, '@'))
$out[$rf][] = sprintf('%s@%s', $value, $this->mail_domain);
- else if (in_array($rf, array('street','zipcode','locality','country','region')))
- $out['address'][$i][$rf] = $value;
+ else if (in_array($col, array('street','zipcode','locality','country','region')))
+ $out['address'.($subtype?':':'').$subtype][$i][$col] = $value;
else if ($rec[$lf]['count'] > 1)
$out[$rf][] = $value;
else
@@ -1722,13 +1724,16 @@
if (($group_cache = $this->cache->get('groups')) === null)
$group_cache = $this->_fetch_groups();
+ if (!is_array($contact_ids))
+ $contact_ids = explode(',', $contact_ids);
+
$base_dn = $this->groups_base_dn;
$group_name = $group_cache[$group_id]['name'];
$member_attr = $group_cache[$group_id]['member_attr'];
$group_dn = "cn=$group_name,$base_dn";
$new_attrs = array();
- foreach (explode(",", $contact_ids) as $id)
+ foreach ($contact_ids as $id)
$new_attrs[$member_attr][] = self::dn_decode($id);
$this->_debug("C: Add [dn: $group_dn]: ".print_r($new_attrs, true));
--
Gitblit v1.9.1