X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fabook_database.php;h=0377691ced45d37f33ccd742de398d2f7c4724c3;hb=e521a8333e57b3ecd04af17bb85eceb6945b0e8b;hp=952884091b70fa84c3b3b37ab7d8cf387a0b8ece;hpb=15e6162eacc97158393bc75aed3afeb7b19c24a6;p=squirrelmail.git diff --git a/functions/abook_database.php b/functions/abook_database.php index 95288409..0377691c 100644 --- a/functions/abook_database.php +++ b/functions/abook_database.php @@ -3,7 +3,7 @@ /** * abook_database.php * - * Copyright (c) 1999-2002 The Squirrelmail Project Team + * Copyright (c) 1999-2004 The SquirrelMail Project Team * Licensed under the GNU GPL. For full terms see the file COPYING. * * Backend for personal addressbook stored in a database, @@ -27,11 +27,27 @@ * NOTE. This class should not be used directly. Use the * "AddressBook" class instead. * - * $Id$ + * @version $Id$ + * @package squirrelmail + * @subpackage addressbook + */ + +/** Needs the DB functions */ +if (!include_once('DB.php')) { + // same error also in db_prefs.php + require_once(SM_PATH . 'functions/display_messages.php'); + $error = _("Could not include PEAR database functions required for the database backend.") . "
\n"; + $error .= sprintf(_("Is PEAR installed, and is the include path set correctly to find %s?"), + 'DB.php') . "
\n"; + $error .= _("Please contact your system administrator and report this error."); + error_box($error, $color); + exit; +} + +/** + * Undocumented class - stores the addressbook in a sql database + * @package squirrelmail */ - -require_once('DB.php'); - class abook_database extends addressbook_backend { var $btype = 'local'; var $bname = 'database'; @@ -68,6 +84,10 @@ class abook_database extends addressbook_backend { $this->writeable = $param['writeable']; } + if (isset($param['listing'])) { + $this->listing = $param['listing']; + } + $this->open(true); } else { @@ -92,7 +112,7 @@ class abook_database extends addressbook_backend { $dbh = DB::connect($this->dsn, true); - if (DB::isError($dbh) || DB::isWarning($dbh)) { + if (DB::isError($dbh)) { return $this->set_error(sprintf(_("Database error: %s"), DB::errorMessage($dbh))); } @@ -115,7 +135,7 @@ class abook_database extends addressbook_backend { if(!$this->open()) { return false; } - + /* To be replaced by advanded search expression parsing */ if (is_array($expr)) { return; @@ -162,8 +182,8 @@ class abook_database extends addressbook_backend { return false; } - $query = sprintf("SELECT * FROM %s WHERE owner='%s' AND nickname='%s'", - $this->table, $this->owner, $alias); + $query = sprintf("SELECT * FROM %s WHERE owner='%s' AND LOWER(nickname)='%s'", + $this->table, $this->owner, $this->dbh->quoteString($alias)); $res = $this->dbh->query($query); @@ -191,6 +211,11 @@ class abook_database extends addressbook_backend { if (!$this->open()) { return false; } + + if(isset($this->listing) && !$this->listing) { + return array(); + } + $query = sprintf("SELECT * FROM %s WHERE owner='%s'", $this->table, $this->owner); @@ -329,4 +354,6 @@ class abook_database extends addressbook_backend { } } /* End of class abook_database */ + +// vim: et ts=4 ?>