From ade8e117dfbb62f6dbd16b4aca81dfbdbd054579 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 02 Sep 2008 03:42:46 -0400
Subject: [PATCH] Let rcmail class create address book instances
---
program/include/rcmail.php | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 00dca6e..348a916 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -235,6 +235,38 @@
/**
+ * Return instance of the internal address book class
+ *
+ * @param boolean True if the address book needs to be writeable
+ * @return object rcube_contacts Address book object
+ */
+ public function get_address_book($id, $writeable = false)
+ {
+ $contacts = null;
+ $ldap_config = (array)$this->config->get('ldap_public');
+ $abook_type = strtolower($this->config->get('address_book_type'));
+
+ if ($id && $ldap_config[$id]) {
+ $contacts = new rcube_ldap($ldap_config[$id]);
+ }
+ else if ($abook_type == 'ldap') {
+ // Use the first writable LDAP address book.
+ foreach ($ldap_config as $id => $prop) {
+ if (!$writeable || $prop['writable']) {
+ $contacts = new rcube_ldap($prop);
+ break;
+ }
+ }
+ }
+ else {
+ $contacts = new rcube_contacts($this->db, $this->user->ID);
+ }
+
+ return $contacts;
+ }
+
+
+ /**
* Init output object for GUI and add common scripts.
* This will instantiate a rcmail_template object and set
* environment vars according to the current session and configuration
--
Gitblit v1.9.1