alecpl
2010-03-02 3704b78841ba05c31a2acaeabdffb9c471bb6610
program/include/rcmail.php
@@ -244,6 +244,7 @@
  /**
   * Return instance of the internal address book class
   *
   * @param string  Address book identifier
   * @param boolean True if the address book needs to be writeable
   * @return object rcube_contacts Address book object
   */
@@ -274,12 +275,60 @@
        }
      }
    }
    else {
    else { // $id == 'sql'
      $contacts = new rcube_contacts($this->db, $this->user->ID);
    }
    
    return $contacts;
  }
  /**
   * Return address books list
   *
   * @param boolean True if the address book needs to be writeable
   * @return array  Address books array
   */
  public function get_address_sources($writeable = false)
  {
    $abook_type = strtolower($this->config->get('address_book_type'));
    $ldap_config = (array)$this->config->get('ldap_public');
    $autocomplete = (array)$this->config->get('autocomplete_addressbooks');
    $list = array();
    // We are using the DB address book
    if ($abook_type != 'ldap') {
      $list['0'] = array(
        'id' => 0,
   'name' => rcube_label('personaladrbook'),
        'readonly' => false,
   'autocomplete' => in_array('sql', $autocomplete)
      );
    }
    if (is_array($ldap_config)) {
      foreach ($ldap_config as $id => $prop)
        $list[$id] = array(
     'id' => $id,
     'name' => $prop['name'],
     'readonly' => !$prop['writable'],
     'autocomplete' => in_array('sql', $autocomplete)
        );
    }
    $plugin = $this->plugins->exec_hook('address_sources', array('sources' => $list));
    $list = $plugin['sources'];
    if ($writeable && !empty($list)) {
      foreach ($list as $idx => $item) {
        if ($item['readonly']) {
     unset($list[$idx]);
        }
      }
    }
    return $list;
  }
  
  
  /**