X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Faddressbook.php;h=26b6aed3a8c71a1f0f17db38c4ace99f4eb5959a;hb=374b7e37faf4b51abcbc047f4d566123226773f9;hp=c83d4faa524a0e850e221f24149fa7f933b07e3e;hpb=b9bfd165b055eac4f5e62438ae78eaab01cbb90e;p=squirrelmail.git diff --git a/functions/addressbook.php b/functions/addressbook.php index c83d4faa..26b6aed3 100644 --- a/functions/addressbook.php +++ b/functions/addressbook.php @@ -8,12 +8,17 @@ ** $Id$ **/ - $addressbook_php = true; + if (defined ('addressbook_php')) + return; + define ('addressbook_php', true); // Include backends here. include('../functions/abook_local_file.php'); include('../functions/abook_ldap_server.php'); + // Un-comment if you're using database backend + // include('../functions/abook_database.php'); + // Create and initialize an addressbook object. // Returns the created object @@ -24,19 +29,37 @@ $abook = new AddressBook; // Always add a local backend + + // Use *either* file-based *or* database addressbook. Remove + // and insert comments to enable the one you want. + + // ------ BEGIN Initialize file-based personal addressbook ------ $filename = sprintf('%s%s.abook', $data_dir, $username); $r = $abook->add_backend('local_file', Array('filename' => $filename, 'create' => true)); + if(!$r && $showerr) { printf(_("Error opening file %s"), $filename); exit; } + // ------ END Initialize file-based personal addressbook ------ + + // ------ BEGIN Initialize database-based personal addressbook ------ + // $r = $abook->add_backend('database', Array('dsn' => 'mysql://dbuser@host/dbname', + // 'owner' => $username, + // 'table' => 'address')); + // if(!$r && $showerr) { + // printf(_("Error initializing addressbook: %s"), $filename); + // exit; + // } + // ------ END Initialize database-based personal addressbook ------ if($onlylocal) return $abook; // Load configured LDAP servers (if PHP has LDAP support) - if(is_array($ldap_server) && function_exists('ldap_connect')) { + if(isset($ldap_server) && is_array($ldap_server) && + function_exists('ldap_connect')) { reset($ldap_server); while(list($undef,$param) = each($ldap_server)) { if(is_array($param)) { @@ -58,7 +81,7 @@ // Had to move this function outside of the Addressbook Class // PHP 4.0.4 Seemed to be having problems with inline functions. - function cmp($a,$b) { + function addressbook_cmp($a,$b) { if($a['backend'] > $b['backend']) return 1; else if($a['backend'] < $b['backend']) @@ -91,7 +114,7 @@ $ret = array(); for($i = 1 ; $i <= $this->numbackends ; $i++) { if(empty($type) || $type == $this->backends[$i]->btype) { - array_push($ret, &$this->backends[$i]); + $ret[] = &$this->backends[$i]; } } return $ret; @@ -106,7 +129,7 @@ // See each of the backend classes for valid parameters. function add_backend($backend, $param = '') { $backend_name = 'abook_' . $backend; - eval("\$newback = new $backend_name(\$param);"); + eval('$newback = new ' . $backend_name . '($param);'); if(!empty($newback->error)) { $this->error = $newback->error; return false; @@ -174,7 +197,7 @@ $ret = $this->search($expression, $bnum); if(!is_array($ret)) return $ret; - usort($ret, 'cmp'); + usort($ret, 'addressbook_cmp'); return $ret; } @@ -260,7 +283,7 @@ $userdata['nickname'] = $userdata['email']; } - if(eregi("[\: \|\#\"\!]", $userdata['nickname'])) { + if(eregi('[ \\:\\|\\#\\"\\!]', $userdata['nickname'])) { $this->error = _("Nickname contain illegal characters"); return false; } @@ -338,7 +361,7 @@ return false; } - if(eregi("[\: \|\#\"\!]", $userdata['nickname'])) { + if(eregi('[\\: \\|\\#"\\!]', $userdata['nickname'])) { $this->error = _("Nickname contain illegal characters"); return false; }