/**
* abook_database.php
*
- * Copyright (c) 1999-2001 The Squirrelmail Development 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,
* 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.") . "<br />\n";
+ $error .= sprintf(_("Is PEAR installed, and is the include path set correctly to find %s?"),
+ '<tt>DB.php</tt>') . "<br />\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';
$this->writeable = $param['writeable'];
}
+ if (isset($param['listing'])) {
+ $this->listing = $param['listing'];
+ }
+
$this->open(true);
}
else {
$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)));
}
if(!$this->open()) {
return false;
}
-
+
/* To be replaced by advanded search expression parsing */
if (is_array($expr)) {
return;
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);
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);
}
} /* End of class abook_database */
+
+// vim: et ts=4
?>