diff --git a/addressbook/inc/class.contacts.inc.php b/addressbook/inc/class.contacts.inc.php
index cc7ecb3497..29b5e50948 100644
--- a/addressbook/inc/class.contacts.inc.php
+++ b/addressbook/inc/class.contacts.inc.php
@@ -1,5 +1,5 @@
diff --git a/addressbook/inc/class.contacts_shared.inc.php b/addressbook/inc/class.contacts_shared.inc.php
index a1d3723811..a381845165 100644
--- a/addressbook/inc/class.contacts_shared.inc.php
+++ b/addressbook/inc/class.contacts_shared.inc.php
@@ -24,62 +24,62 @@
/* $Id$ */
- /*
- addressbook_extra (
- contact_id int,
- contact_owner int,
- contact_name varchar(255),
- contact_value varchar(255)
- );
- */
+/*
+ addressbook_extra (
+ contact_id int,
+ contact_owner int,
+ contact_name varchar(255),
+ contact_value varchar(255)
+ );
+*/
- class contacts extends contacts_
- {
- var $db;
- var $account_id;
- var $stock_contact_fields; // This is an array of all the fields in the addressbook
- var $email_types; // VCard email type array
- var $total_records; // This will contain numrows for data retrieved
+ class contacts extends contacts_
+ {
+ var $db;
+ var $account_id;
+ var $stock_contact_fields; // This is an array of all the fields in the addressbook
+ var $email_types; // VCard email type array
+ var $total_records; // This will contain numrows for data retrieved
- function split_stock_and_extras($fields)
- {
- while (list($field,$value) = each($fields)) {
- // Depending on how the array was build, this is needed.
- // Yet, I can't figure out why ....
- if (gettype($field) == "integer") {
- $field = $value;
- }
- if ($this->stock_contact_fields[$field]) {
- $stock_fields[$field] = $value;
- $stock_fieldnames[$field] = $field;
- } else {
- $extra_fields[$field] = $value;
- }
- }
- return array($stock_fields,$stock_fieldnames,$extra_fields);
- }
+ function split_stock_and_extras($fields)
+ {
+ while (list($field,$value) = each($fields)) {
+ // Depending on how the array was build, this is needed.
+ // Yet, I can't figure out why ....
+ if (gettype($field) == "integer") {
+ $field = $value;
+ }
+ if ($this->stock_contact_fields[$field]) {
+ $stock_fields[$field] = $value;
+ $stock_fieldnames[$field] = $field;
+ } else {
+ $extra_fields[$field] = $value;
+ }
+ }
+ return array($stock_fields,$stock_fieldnames,$extra_fields);
+ }
- function loop_addslashes($fields)
- {
- $absf = $this->stock_contact_fields;
- while ($t = each($absf)) {
- $ta[] = addslashes($fields[$t[0]]);
- }
- reset($absf); // Is this needed ?
- return $ta;
- }
+ function loop_addslashes($fields)
+ {
+ $absf = $this->stock_contact_fields;
+ while ($t = each($absf)) {
+ $ta[] = addslashes($fields[$t[0]]);
+ }
+ reset($absf); // Is this needed ?
+ return $ta;
+ }
- // This will take an array or integer
- function delete($id)
- {
- if (gettype($id) == "array") {
- while (list($null,$t_id) = each($id)) {
- $this->delete_($t_id);
- }
- } else {
- $this->delete_($id);
- }
- }
+ // This will take an array or integer
+ function delete($id)
+ {
+ if (gettype($id) == "array") {
+ while (list($null,$t_id) = each($id)) {
+ $this->delete_($t_id);
+ }
+ } else {
+ $this->delete_($id);
+ }
+ }
- }
+ }
?>
diff --git a/addressbook/inc/class.contacts_sql.inc.php b/addressbook/inc/class.contacts_sql.inc.php
index 24cb55a96b..f32e7d1a08 100644
--- a/addressbook/inc/class.contacts_sql.inc.php
+++ b/addressbook/inc/class.contacts_sql.inc.php
@@ -44,326 +44,335 @@
var $email_types; // VCard email type array
var $total_records; // This will contain numrows for data retrieved
- function contacts_()
- {
- global $phpgw, $phpgw_info;
+ function contacts_()
+ {
+ global $phpgw, $phpgw_info;
- $this->db = $phpgw->db;
+ $this->db = $phpgw->db;
+ $this->account_id = $phpgw_info["user"]["account_id"];
- $this->account_id = $phpgw_info["user"]["account_id"];
- // rework the following to be a simple sed style creation
- $this->stock_contact_fields = array("fn" => "fn", //'firstname lastname'
- "sound" => "sound",
- "org_name" => "org_name", //company
- "org_unit" => "org_unit", //division
- "title" => "title",
- "n_given" => "n_given", //firstname
- "n_family" => "n_family", //lastname
- "n_middle" => "n_middle",
- "n_prefix" => "n_prefix",
- "n_suffix" => "n_suffix",
- "label" => "label",
- "adr_street" => "adr_street",
- "adr_locality" => "adr_locality", //city
- "adr_region" => "adr_region", //state
- "adr_postalcode" => "adr_postalcode", //zip
- "adr_countryname" => "adr_countryname",
- "adr_work" => "adr_work", //yn
- "adr_home" => "adr_home", //yn
- "adr_parcel" => "adr_parcel", //yn
- "adr_postal" => "adr_postal", //yn
- "tz" => "tz",
- "geo" => "geo",
- "a_tel" => "a_tel",
- "a_tel_work" => "a_tel_work", //yn
- "a_tel_home" => "a_tel_home", //yn
- "a_tel_voice" => "a_tel_voice", //yn
- "a_tel_msg" => "a_tel_msg", //yn
- "a_tel_fax" => "a_tel_fax", //yn
- "a_tel_prefer" => "a_tel_prefer", //yn
- "b_tel" => "b_tel",
- "b_tel_work" => "b_tel_work", //yn
- "b_tel_home" => "b_tel_home", //yn
- "b_tel_voice" => "b_tel_voice", //yn
- "b_tel_msg" => "b_tel_msg", //yn
- "b_tel_fax" => "b_tel_fax", //yn
- "b_tel_prefer" => "b_tel_prefer", //yn
- "c_tel" => "c_tel",
- "c_tel_work" => "c_tel_work", //yn
- "c_tel_home" => "c_tel_home", //yn
- "c_tel_voice" => "c_tel_voice", //yn
- "c_tel_msg" => "c_tel_msg", //yn
- "c_tel_fax" => "c_tel_fax", //yn
- "c_tel_prefer" => "c_tel_prefer", //yn
- "d_email" => "d_email",
- "d_emailtype" => "d_emailtype", //'INTERNET','CompuServe',etc...
- "d_email_work" => "d_email_work", //yn
- "d_email_home" => "d_email_home", //yn
- );
+ $this->stock_contact_fields = array(
+ "fn" => "fn", //'firstname lastname'
+ "sound" => "sound",
+ "org_name" => "org_name", //company
+ "org_unit" => "org_unit", //division
+ "title" => "title",
+ "n_given" => "n_given", //firstname
+ "n_family" => "n_family", //lastname
+ "n_middle" => "n_middle",
+ "n_prefix" => "n_prefix",
+ "n_suffix" => "n_suffix",
+ "label" => "label",
+ "adr_street" => "adr_street",
+ "adr_locality" => "adr_locality", //city
+ "adr_region" => "adr_region", //state
+ "adr_postalcode" => "adr_postalcode", //zip
+ "adr_countryname" => "adr_countryname",
+ "adr_work" => "adr_work", //yn
+ "adr_home" => "adr_home", //yn
+ "adr_parcel" => "adr_parcel", //yn
+ "adr_postal" => "adr_postal", //yn
+ "tz" => "tz",
+ "geo" => "geo",
+ "a_tel" => "a_tel",
+ "a_tel_work" => "a_tel_work", //yn
+ "a_tel_home" => "a_tel_home", //yn
+ "a_tel_voice" => "a_tel_voice", //yn
+ "a_tel_msg" => "a_tel_msg", //yn
+ "a_tel_fax" => "a_tel_fax", //yn
+ "a_tel_prefer" => "a_tel_prefer", //yn
+ "b_tel" => "b_tel",
+ "b_tel_work" => "b_tel_work", //yn
+ "b_tel_home" => "b_tel_home", //yn
+ "b_tel_voice" => "b_tel_voice", //yn
+ "b_tel_msg" => "b_tel_msg", //yn
+ "b_tel_fax" => "b_tel_fax", //yn
+ "b_tel_prefer" => "b_tel_prefer", //yn
+ "c_tel" => "c_tel",
+ "c_tel_work" => "c_tel_work", //yn
+ "c_tel_home" => "c_tel_home", //yn
+ "c_tel_voice" => "c_tel_voice", //yn
+ "c_tel_msg" => "c_tel_msg", //yn
+ "c_tel_fax" => "c_tel_fax", //yn
+ "c_tel_prefer" => "c_tel_prefer", //yn
+ "d_email" => "d_email",
+ "d_emailtype" => "d_emailtype", //'INTERNET','CompuServe',etc...
+ "d_email_work" => "d_email_work", //yn
+ "d_email_home" => "d_email_home", //yn
+ );
- $this->email_types = array("INTERNET" => "INTERNET",
- "CompuServe" => "CompuServe",
- "AOL" => "AOL",
- "Prodigy" => "Prodigy",
- "eWorld" => "eWorld",
- "AppleLink" => "AppleLink",
- "AppleTalk" => "AppleTalk",
- "PowerShare" => "PowerShare",
- "IBMMail" => "IBMMail",
- "ATTMail" => "ATTMail",
- "MCIMail" => "MCIMail",
- "X.400" => "X.400",
- "TLX" => "TLX"
- );
- }
+ $this->email_types = array(
+ "INTERNET" => "INTERNET",
+ "CompuServe" => "CompuServe",
+ "AOL" => "AOL",
+ "Prodigy" => "Prodigy",
+ "eWorld" => "eWorld",
+ "AppleLink" => "AppleLink",
+ "AppleTalk" => "AppleTalk",
+ "PowerShare" => "PowerShare",
+ "IBMMail" => "IBMMail",
+ "ATTMail" => "ATTMail",
+ "MCIMail" => "MCIMail",
+ "X.400" => "X.400",
+ "TLX" => "TLX"
+ );
+ }
- function read_single_entry($id,$fields) // send this the id and whatever fields you want to see
- {
- list($stock_fields,$stock_fieldnames,$extra_fields) = $this->split_stock_and_extras($fields);
- if (count($stock_fieldnames)) {
- $t_fields = "," . implode(",",$stock_fieldnames);
- if ($t_fields == ",") {
- unset($t_fields);
- }
- }
+ // send this the id and whatever fields you want to see
+ function read_single_entry($id,$fields)
+ {
+ list($stock_fields,$stock_fieldnames,$extra_fields) =
+ $this->split_stock_and_extras($fields);
- $this->db2 = $this->db;
+ if (count($stock_fieldnames)) {
+ $t_fields = "," . implode(",",$stock_fieldnames);
+ if ($t_fields == ",") {
+ unset($t_fields);
+ }
+ }
+
+ $this->db2 = $this->db;
- $this->db->query("select id,lid,tid,owner $t_fields from $this->std_table WHERE id='$id'");
- $this->db->next_record();
+ $this->db->query("select id,lid,tid,owner $t_fields from $this->std_table WHERE id='$id'");
+ $this->db->next_record();
- $return_fields[0]["id"] = $this->db->f("id"); // unique id
- $return_fields[0]["lid"] = $this->db->f("lid"); // lid for group/account records
- $return_fields[0]["tid"] = $this->db->f("tid"); // type id (g/u) for groups/accounts
- $return_fields[0]["owner"] = $this->db->f("owner"); // id of owner/parent for the record
- if (gettype($stock_fieldnames) == "array") {
- while (list($f_name) = each($stock_fieldnames)) {
- $return_fields[0][$f_name] = $this->db->f($f_name);
- }
- }
- $this->db2->query("select contact_name,contact_value from $this->ext_table where contact_id='"
- . $this->db->f("id") . "'",__LINE__,__FILE__);
- while ($this->db2->next_record()) {
- // If its not in the list to be returned, don't return it.
- // This is still quicker then 5(+) separate queries
- if ($extra_fields[$this->db2->f("contact_name")]) {
- $return_fields[0][$this->db2->f("contact_name")] = $this->db2->f("contact_value");
- }
- }
+ $return_fields[0]["id"] = $this->db->f("id"); // unique id
+ $return_fields[0]["lid"] = $this->db->f("lid"); // lid for group/account records
+ $return_fields[0]["tid"] = $this->db->f("tid"); // type id (g/u) for groups/accounts
+ $return_fields[0]["owner"] = $this->db->f("owner"); // id of owner/parent for the record
+ if (gettype($stock_fieldnames) == "array") {
+ while (list($f_name) = each($stock_fieldnames)) {
+ $return_fields[0][$f_name] = $this->db->f($f_name);
+ }
+ }
+ $this->db2->query("select contact_name,contact_value from $this->ext_table where contact_id='" . $this->db->f("id") . "'",__LINE__,__FILE__);
+ while ($this->db2->next_record()) {
+ // If its not in the list to be returned, don't return it.
+ // This is still quicker then 5(+) separate queries
+ if ($extra_fields[$this->db2->f("contact_name")]) {
+ $return_fields[0][$this->db2->f("contact_name")] = $this->db2->f("contact_value");
+ }
+ }
+ return $return_fields;
+ }
- return $return_fields;
- }
+ // send this the range,query,sort,order
+ // and whatever fields you want to see
+ function read($start,$offset,$fields=array(),$query="",$filter="",$sort="",$order="")
+ {
+ global $phpgw,$phpgw_info;
+ $DEBUG = 1;
- function read($start,$offset,$fields=array(),$query="",$filter="",$sort="",$order="") // send this the range,query,sort,order
- // and whatever fields you want to see
- {
- global $phpgw,$phpgw_info;
- $DEBUG = 1;
+ list($stock_fields,$stock_fieldnames,$extra_fields) = $this->split_stock_and_extras($fields);
+ if (count($stock_fieldnames)) {
+ $t_fields = "," . implode(",",$stock_fieldnames);
+ if ($t_fields == ",") {
+ unset($t_fields);
+ }
+ }
- list($stock_fields,$stock_fieldnames,$extra_fields) = $this->split_stock_and_extras($fields);
- if (count($stock_fieldnames)) {
- $t_fields = "," . implode(",",$stock_fieldnames);
- if ($t_fields == ",") {
- unset($t_fields);
- }
- }
+ if ($filter) {
+ if ($DEBUG) { echo "DEBUG - Inbound filter is: #".$filter."#"; }
+ $filterarray = split(',',$filter);
+ if ($filterarray[1]) {
+ $i=0;
+ while (list($name,$value) = split('=',$filterarray[$i])) {
+ $filterfields[$i] .= array($name => $value);
+ $i++;
+ }
+ } else {
+ list($name,$value) = split('=',$filter);
+ if ($DEBUG) {
+ echo "
DEBUG - Filter intermediate strings 1: #".$name."# => #".$value."#";
+ }
+ $filterfields = array($name => $value);
+ }
- if ($filter) {
- if ($DEBUG) { echo "DEBUG - Inbound filter is: #".$filter."#"; }
- $filterarray = split(',',$filter);
- if ($filterarray[1]) {
- $i=0;
- while (list($name,$value) = split('=',$filterarray[$i])) {
- $filterfields[$i] .= array($name => $value);
- $i++;
- }
- } else {
- list($name,$value) = split('=',$filter);
- if ($DEBUG) { echo "
DEBUG - Filter intermediate strings 1: #".$name."# => #".$value."#"; }
- $filterfields = array($name => $value);
- }
+ $i=0;
+ while (list($name,$value) = each($filterfields)) {
+ if ($DEBUG) { echo "
DEBUG - Filter intermediate strings 2: #".$name."# => #".$value."#"; }
+ $filterlist .= $name."='".$value."',";
+ $i++;
+ }
+ $filterlist = substr($filterlist,0,-1);
- $i=0;
- while (list($name,$value) = each($filterfields)) {
- if ($DEBUG) { echo "
DEBUG - Filter intermediate strings 2: #".$name."# => #".$value."#"; }
- $filterlist .= $name."='".$value."',";
- $i++;
- }
- $filterlist = substr($filterlist,0,-1);
-
- if ($DEBUG) { echo "
DEBUG - Filter output string: #".$filterlist."#"; }
-
- list($fields,$fieldnames,$extra) = $this->split_stock_and_extras($filterfields);
-
- if ($extra) {
- while (list($name,$value) = each($extra)) {
- $value = "%," . $value . ",%";
- $filterextra .= " AND contact_name='".$name."' AND contact_value like '".$value."',";
- }
- $filterextra = substr($filterextra,0,-1);
- } else {
- $filterstock = " AND ($filterlist) ";
- }
- }
- if ($DEBUG && ($filterextra || $filterstock)) {
- if ($filterextra) {
- echo "
DEBUG - Filtering on extra fields with: #" . $filterextra . "#";
- }
- if ($filterstock) {
- echo "
DEBUG - Filtering on standard fields with: #" . $filterstock . "#";
- }
- }
+ if ($DEBUG) {
+ echo "
DEBUG - Filter output string: #".$filterlist."#";
+ }
- if (!$sort) { $sort = "ASC"; }
+ list($fields,$fieldnames,$extra) = $this->split_stock_and_extras($filterfields);
- if ($order) {
- $ordermethod = "order by $order $sort ";
- } else {
- $ordermethod = "order by n_family,n_given,d_email $sort";
- }
+ if ($extra) {
+ while (list($name,$value) = each($extra)) {
+ $value = "%," . $value . ",%";
+ $filterextra .= " AND contact_name='".$name."' AND contact_value like '".$value."',";
+ }
+ $filterextra = substr($filterextra,0,-1);
+ } else {
+ $filterstock = " AND ($filterlist) ";
+ }
+ }
+ if ($DEBUG && ($filterextra || $filterstock)) {
+ if ($filterextra) {
+ echo "
DEBUG - Filtering on extra fields with: #" . $filterextra . "#";
+ }
+ if ($filterstock) {
+ echo "
DEBUG - Filtering on standard fields with: #" . $filterstock . "#";
+ }
+ }
- $this->db3 = $this->db2 = $this->db; // Create new result objects before our queries
+ if (!$sort) { $sort = "ASC"; }
- if ($query) {
- $this->db3->query("SELECT * from $this->std_table WHERE (n_family like '"
- . "%$query%' OR n_given like '%$query%' OR d_email like '%$query%' OR "
- . "adr_street like '%$query%' OR adr_locality like '%$query%' OR adr_region "
- . "like '%$query%' OR adr_postalcode like '%$query%' OR org_unit like "
- . "'%$query%' OR org_name like '%$query%') " . $filterstock . $ordermethod,__LINE__,__FILE__);
- $this->total_records = $this->db3->num_rows();
+ if ($order) {
+ $ordermethod = "order by $order $sort ";
+ } else {
+ $ordermethod = "order by n_family,n_given,d_email $sort";
+ }
- $this->db->query("SELECT * from $this->std_table WHERE (n_family like '"
- . "%$query%' OR n_given like '%$query%' OR d_email like '%$query%' OR "
- . "adr_street like '%$query%' OR adr_locality like '%$query%' OR adr_region "
- . "like '%$query%' OR adr_postalcode like '%$query%' OR org_unit like "
- . "'%$query%' OR ORG_Name like '%$query%') " . $filterstock . $ordermethod . " "
- . $this->db->limit($start,$offset),__LINE__,__FILE__);
- } else {
- $this->db3->query("select id,lid,tid,owner $t_fields from $this->std_table "
- . $filterstock,__LINE__,__FILE__);
- $this->total_records = $this->db3->num_rows();
-
- $this->db->query("select id,lid,tid,owner $t_fields from $this->std_table "
- . $filterstock . " " . $ordermethod . " " . $this->db->limit($start,$offset),__LINE__,__FILE__);
- }
+ $this->db3 = $this->db2 = $this->db; // Create new result objects before our queries
- $i=0;
- while ($this->db->next_record()) {
- $return_fields[$i]["id"] = $this->db->f("id"); // unique id
- $return_fields[$i]["lid"] = $this->db->f("lid"); // lid for group/account records
- $return_fields[$i]["tid"] = $this->db->f("tid"); // type id (g/u) for groups/accounts
- $return_fields[$i]["owner"] = $this->db->f("owner"); // id of owner/parent for the record
- if (gettype($stock_fieldnames) == "array") {
- while (list($f_name) = each($stock_fieldnames)) {
- $return_fields[$i][$f_name] = $this->db->f($f_name);
- }
- reset($stock_fieldnames);
- }
+ if ($query) {
+ $this->db3->query("SELECT * from $this->std_table WHERE (n_family like '"
+ . "%$query%' OR n_given like '%$query%' OR d_email like '%$query%' OR "
+ . "adr_street like '%$query%' OR adr_locality like '%$query%' OR adr_region "
+ . "like '%$query%' OR adr_postalcode like '%$query%' OR org_unit like "
+ . "'%$query%' OR org_name like '%$query%') " . $filterstock . $ordermethod,__LINE__,__FILE__);
+ $this->total_records = $this->db3->num_rows();
- $this->db2->query("select contact_name,contact_value from $this->ext_table where contact_id='"
- . $this->db->f("id") . "'" .$filterextra,__LINE__,__FILE__);
- while ($this->db2->next_record()) {
- // If its not in the list to be returned, don't return it.
- // This is still quicker then 5(+) separate queries
- if ($extra_fields[$this->db2->f("contact_name")]) {
- $return_fields[$i][$this->db2->f("contact_name")] = $this->db2->f("contact_value");
- }
- }
- $i++;
- }
+ $this->db->query("SELECT * from $this->std_table WHERE (n_family like '"
+ . "%$query%' OR n_given like '%$query%' OR d_email like '%$query%' OR "
+ . "adr_street like '%$query%' OR adr_locality like '%$query%' OR adr_region "
+ . "like '%$query%' OR adr_postalcode like '%$query%' OR org_unit like "
+ . "'%$query%' OR ORG_Name like '%$query%') " . $filterstock . $ordermethod . " "
+ . $this->db->limit($start,$offset),__LINE__,__FILE__);
+ } else {
+ $this->db3->query("select id,lid,tid,owner $t_fields from $this->std_table "
+ . $filterstock,__LINE__,__FILE__);
+ $this->total_records = $this->db3->num_rows();
+
+ $this->db->query("select id,lid,tid,owner $t_fields from $this->std_table "
+ . $filterstock . " " . $ordermethod . " " . $this->db->limit($start,$offset),__LINE__,__FILE__);
+ }
+
+ $i=0;
+ while ($this->db->next_record()) {
+ // unique id, lid for group/account records,
+ // type id (g/u) for groups/accounts, and
+ // id of owner/parent for the record
+ $return_fields[$i]["id"] = $this->db->f("id");
+ $return_fields[$i]["lid"] = $this->db->f("lid");
+ $return_fields[$i]["tid"] = $this->db->f("tid");
+ $return_fields[$i]["owner"] = $this->db->f("owner");
+
+ if (gettype($stock_fieldnames) == "array") {
+ while (list($f_name) = each($stock_fieldnames)) {
+ $return_fields[$i][$f_name] = $this->db->f($f_name);
+ }
+ reset($stock_fieldnames);
+ }
+ $this->db2->query("select contact_name,contact_value from $this->ext_table where contact_id='"
+ . $this->db->f("id") . "'" .$filterextra,__LINE__,__FILE__);
+ while ($this->db2->next_record()) {
+ // If its not in the list to be returned, don't return it.
+ // This is still quicker then 5(+) separate queries
+ if ($extra_fields[$this->db2->f("contact_name")]) {
+ $return_fields[$i][$this->db2->f("contact_name")] = $this->db2->f("contact_value");
+ }
+ }
+ $i++;
+ }
- return $return_fields;
- }
+ return $return_fields;
+ }
- function add($owner,$fields)
- {
- list($stock_fields,$stock_fieldnames,$extra_fields) = $this->split_stock_and_extras($fields);
+ function add($owner,$fields)
+ {
+ list($stock_fields,$stock_fieldnames,$extra_fields) = $this->split_stock_and_extras($fields);
- //$this->db->lock(array("contacts"));
- $this->db->query("insert into $this->std_table (owner,"
- . implode(",",$this->stock_contact_fields)
- . ") values ('$owner','"
- . implode("','",$this->loop_addslashes($stock_fields)) . "')",__LINE__,__FILE__);
+ //$this->db->lock(array("contacts"));
+ $this->db->query("insert into $this->std_table (owner,"
+ . implode(",",$this->stock_contact_fields)
+ . ") values ('$owner','"
+ . implode("','",$this->loop_addslashes($stock_fields)) . "')",__LINE__,__FILE__);
- $this->db->query("select max(id) from $this->std_table ",__LINE__,__FILE__);
- $this->db->next_record();
- $id = $this->db->f(0);
- //$this->db->unlock();
+ $this->db->query("select max(id) from $this->std_table ",__LINE__,__FILE__);
+ $this->db->next_record();
+ $id = $this->db->f(0);
+ //$this->db->unlock();
+ if (count($extra_fields)) {
+ while (list($name,$value) = each($extra_fields)) {
+ $this->db->query("insert into $this->ext_table values ('$id','" . $this->account_id . "','"
+ . addslashes($name) . "','" . addslashes($value) . "')",__LINE__,__FILE__);
+ }
+ }
+ }
- if (count($extra_fields)) {
- while (list($name,$value) = each($extra_fields)) {
- $this->db->query("insert into $this->ext_table values ('$id','" . $this->account_id . "','"
- . addslashes($name) . "','" . addslashes($value) . "')",__LINE__,__FILE__);
- }
- }
- }
+ function field_exists($id,$field_name)
+ {
+ $this->db->query("select count(*) from $this->ext_table where contact_id='$id' and contact_name='"
+ . addslashes($field_name) . "'",__LINE__,__FILE__);
+ $this->db->next_record();
+ return $this->db->f(0);
+ }
- function field_exists($id,$field_name)
- {
- $this->db->query("select count(*) from $this->ext_table where contact_id='$id' and contact_name='"
- . addslashes($field_name) . "'",__LINE__,__FILE__);
- $this->db->next_record();
- return $this->db->f(0);
- }
+ function add_single_extra_field($id,$owner,$field_name,$field_value)
+ {
+ $this->db->query("insert into $this->ext_table values ($id,'$owner','" . addslashes($field_name)
+ . "','" . addslashes($field_value) . "')",__LINE__,__FILE__);
+ }
- function add_single_extra_field($id,$owner,$field_name,$field_value)
- {
- $this->db->query("insert into $this->ext_table values ($id,'$owner','" . addslashes($field_name)
- . "','" . addslashes($field_value) . "')",__LINE__,__FILE__);
- }
+ function delete_single_extra_field($id,$field_name)
+ {
+ $this->db->query("delete from $this->ext_table where contact_id='$id' and contact_name='"
+ . addslashes($field_name) . "'",__LINE__,__FILE__);
+ }
- function delete_single_extra_field($id,$field_name)
- {
- $this->db->query("delete from $this->ext_table where contact_id='$id' and contact_name='"
- . addslashes($field_name) . "'",__LINE__,__FILE__);
- }
+ function update($id,$owner,$fields)
+ {
+ // First make sure that id number exists
+ $this->db->query("select count(*) from $this->std_table where id='$id'",__LINE__,__FILE__);
+ $this->db->next_record();
+ if (! $this->db->f(0)) {
+ return False;
+ }
- function update($id,$owner,$fields)
- {
- // First make sure that id number exists
- $this->db->query("select count(*) from $this->std_table where id='$id'",__LINE__,__FILE__);
- $this->db->next_record();
- if (! $this->db->f(0)) {
- return False;
- }
+ list($stock_fields,$stock_fieldnames,$extra_fields) = $this->split_stock_and_extras($fields);
+ if (count($stock_fields)) {
+ while (list($stock_fieldname) = each($stock_fieldnames)) {
+ $ta[] = $stock_fieldname . "='" . addslashes($stock_fields[$stock_fieldname]) . "'";
+ }
+ $fields_s = "," . implode(",",$ta);
+ if ($field_s == ",") {
+ unset($field_s);
+ }
+ $this->db->query("update $this->std_table set owner='$owner' $fields_s where "
+ . "id='$id'",__LINE__,__FILE__);
+ }
- list($stock_fields,$stock_fieldnames,$extra_fields) = $this->split_stock_and_extras($fields);
- if (count($stock_fields)) {
- while (list($stock_fieldname) = each($stock_fieldnames)) {
- $ta[] = $stock_fieldname . "='" . addslashes($stock_fields[$stock_fieldname]) . "'";
- }
- $fields_s = "," . implode(",",$ta);
- if ($field_s == ",") {
- unset($field_s);
- }
- $this->db->query("update $this->std_table set owner='$owner' $fields_s where "
- . "id='$id'",__LINE__,__FILE__);
- }
+ while (list($x_name,$x_value) = each($extra_fields)) {
+ if ($this->field_exists($id,$x_name)) {
+ if (! $x_value) {
+ $this->delete_single_extra_field($id,$x_name);
+ } else {
+ $this->db->query("update $this->ext_table set contact_value='" . addslashes($x_value)
+ . "',contact_owner='$owner' where contact_name='" . addslashes($x_name)
+ . "' and contact_id='$id'",__LINE__,__FILE__);
+ }
+ } else {
+ $this->add_single_extra_field($id,$owner,$x_name,$x_value);
+ }
+ }
+ }
- while (list($x_name,$x_value) = each($extra_fields)) {
- if ($this->field_exists($id,$x_name)) {
- if (! $x_value) {
- $this->delete_single_extra_field($id,$x_name);
- } else {
- $this->db->query("update $this->ext_table set contact_value='" . addslashes($x_value)
- . "',contact_owner='$owner' where contact_name='" . addslashes($x_name)
- . "' and contact_id='$id'",__LINE__,__FILE__);
- }
- } else {
- $this->add_single_extra_field($id,$owner,$x_name,$x_value);
- }
- }
- }
+ // This is where the real work of delete() is done
+ function delete_($id)
+ {
+ $this->db->query("delete from $this->std_table where owner='" . $this->account_id . "' and "
+ . "id='$id'",__LINE__,__FILE__);
+ $this->db->query("delete from $this->ext_table where contact_id='$id' and contact_owner='"
+ . $this->account_id . "'",__LINE__,__FILE__);
+ }
- // This is where the real work of delete() is done
- function delete_($id)
- {
- $this->db->query("delete from $this->std_table where owner='" . $this->account_id . "' and "
- . "id='$id'",__LINE__,__FILE__);
- $this->db->query("delete from $this->ext_table where contact_id='$id' and contact_owner='"
- . $this->account_id . "'",__LINE__,__FILE__);
- }
-
- }
+ }
?>
diff --git a/addressbook/inc/functions.inc.php b/addressbook/inc/functions.inc.php
index 6cd2493595..8ad1737dca 100755
--- a/addressbook/inc/functions.inc.php
+++ b/addressbook/inc/functions.inc.php
@@ -12,57 +12,58 @@
/* $Id$ */
- $abc = array("fn" => "full name", //'firstname lastname'
- "sound" => "",
- "org_name" => "company name", //company
- "org_unit" => "department", //division
- "title" => "title",
- "n_given" => "first name", //firstname
- "n_family" => "last name", //lastname
- "n_middle" => "middle",
- "n_prefix" => "prefix",
- "n_suffix" => "suffix",
- "label" => "label",
- "adr_street" => "street",
- "adr_locality" => "city", //city
- "adr_region" => "state", //state
- "adr_postalcode" => "zip", //zip
- "adr_countryname" => "country",
- "adr_work" => "", //yn
- "adr_home" => "", //yn
- "adr_parcel" => "", //yn
- "adr_postal" => "", //yn
- "tz" => "timezone",
- "geo" => "geo",
- "a_tel" => "home phone",
- "a_tel_work" => "", //yn
- "a_tel_home" => "", //yn
- "a_tel_voice" => "", //yn
- "a_tel_msg" => "", //yn
- "a_tel_fax" => "", //yn
- "a_tel_prefer" => "", //yn
- "b_tel" => "work phone",
- "b_tel_work" => "", //yn
- "b_tel_home" => "", //yn
- "b_tel_voice" => "", //yn
- "b_tel_msg" => "", //yn
- "b_tel_fax" => "", //yn
- "b_tel_prefer" => "", //yn
- "c_tel" => "fax",
- "c_tel_work" => "", //yn
- "c_tel_home" => "", //yn
- "c_tel_voice" => "", //yn
- "c_tel_msg" => "", //yn
- "c_tel_fax" => "", //yn
- "c_tel_prefer" => "", //yn
- "d_email" => "email",
- "d_emailtype" => "email type", //'INTERNET','CompuServe',etc...
- "d_email_work" => "", //yn
- "d_email_home" => "", //yn
- "bday" => "birthday",
- "url" => "URL",
- //"access" => "access"
- );
+ $abc = array(
+ "fn" => "full name", //'firstname lastname'
+ "sound" => "",
+ "org_name" => "company name", //company
+ "org_unit" => "department", //division
+ "title" => "title",
+ "n_given" => "first name", //firstname
+ "n_family" => "last name", //lastname
+ "n_middle" => "middle",
+ "n_prefix" => "prefix",
+ "n_suffix" => "suffix",
+ "label" => "label",
+ "adr_street" => "street",
+ "adr_locality" => "city", //city
+ "adr_region" => "state", //state
+ "adr_postalcode" => "zip", //zip
+ "adr_countryname" => "country",
+ "adr_work" => "", //yn
+ "adr_home" => "", //yn
+ "adr_parcel" => "", //yn
+ "adr_postal" => "", //yn
+ "tz" => "timezone",
+ "geo" => "geo",
+ "a_tel" => "home phone",
+ "a_tel_work" => "", //yn
+ "a_tel_home" => "", //yn
+ "a_tel_voice" => "", //yn
+ "a_tel_msg" => "", //yn
+ "a_tel_fax" => "", //yn
+ "a_tel_prefer" => "", //yn
+ "b_tel" => "work phone",
+ "b_tel_work" => "", //yn
+ "b_tel_home" => "", //yn
+ "b_tel_voice" => "", //yn
+ "b_tel_msg" => "", //yn
+ "b_tel_fax" => "", //yn
+ "b_tel_prefer" => "", //yn
+ "c_tel" => "fax",
+ "c_tel_work" => "", //yn
+ "c_tel_home" => "", //yn
+ "c_tel_voice" => "", //yn
+ "c_tel_msg" => "", //yn
+ "c_tel_fax" => "", //yn
+ "c_tel_prefer" => "", //yn
+ "d_email" => "email",
+ "d_emailtype" => "email type", //'INTERNET','CompuServe',etc...
+ "d_email_work" => "", //yn
+ "d_email_home" => "", //yn
+ "bday" => "birthday",
+ "url" => "URL",
+ //"access" => "access"
+ );
function display_name($column) {
global $abc;
diff --git a/addressbook/inc/hook_addressbook_add_def_pref.inc.php b/addressbook/inc/hook_addressbook_add_def_pref.inc.php
index 3d1988e8e2..86a01b21ea 100755
--- a/addressbook/inc/hook_addressbook_add_def_pref.inc.php
+++ b/addressbook/inc/hook_addressbook_add_def_pref.inc.php
@@ -1,6 +1,6 @@
change("addressbook","company","addressbook_True");
- $pref->change("addressbook","lastname","addressbook_True");
- $pref->change("addressbook","firstname","addressbook_True");
+ global $pref;
+ $pref->change("addressbook","company","addressbook_True");
+ $pref->change("addressbook","lastname","addressbook_True");
+ $pref->change("addressbook","firstname","addressbook_True");
?>
diff --git a/addressbook/inc/readme.txt b/addressbook/inc/readme.txt
index 1d9278884c..f7f93dc06f 100644
--- a/addressbook/inc/readme.txt
+++ b/addressbook/inc/readme.txt
@@ -8,9 +8,9 @@ function read($start,$offset,$fields,$query="",$sort="",$order="")
$order = sort on this field, e.g. N_Given
returns an array of name/values, e.g.:
- $fields[0]["D_EMAIL"] => "name@domain.com"
+ $fields[0]["d_email"] => "name@domain.com"
...
- $fields[1]["D_EMAIL"] => "othername@otherdomain.com"
+ $fields[1]["d_email"] => "othername@otherdomain.com"
...
function read_single_entry($id,$fields)
@@ -18,8 +18,8 @@ function read_single_entry($id,$fields)
$fields = simple array of fields to return
returns a single array of name/value, e.g.:
- $fields[0]["D_EMAIL"] => "name@domain.com"
- $fields[0]["N_Given"] => "Bob"
+ $fields[0]["d_email"] => "name@domain.com"
+ $fields[0]["n_given"] => "Bob"
function add($owner,$fields)
$owner = lid of user adding this data
@@ -34,66 +34,68 @@ function delete_($id)
$id = id of entry you want to delete
- $this->stock_contact_fields = array("FN" => "FN", //'firstname lastname'
- "SOUND" => "SOUND",
- "ORG_Name" => "ORG_Name", //company
- "ORG_Unit" => "ORG_Unit", //division
- "TITLE" => "TITLE",
- "N_Given" => "N_Given", //firstname
- "N_Family" => "N_Family", //lastname
- "N_Middle" => "N_Middle",
- "N_Prefix" => "N_Prefix",
- "N_Suffix" => "N_Suffix",
- "LABEL" => "LABEL",
- "ADR_Street" => "ADR_Street",
- "ADR_Locality" => "ADR_Locality", //city
- "ADR_Region" => "ADR_Region", //state
- "ADR_PostalCode" => "ADR_PostalCode", //zip
- "ADR_CountryName" => "ADR_CountryName",
- "ADR_Work" => "ADR_Work", //yn
- "ADR_Home" => "ADR_Home", //yn
- "ADR_Parcel" => "ADR_Parcel", //yn
- "ADR_Postal" => "ADR_Postal", //yn
- "TZ" => "TZ",
- "GEO" => "GEO",
- "A_TEL" => "A_TEL",
- "A_TEL_Work" => "A_TEL_Work", //yn
- "A_TEL_Home" => "A_TEL_Home", //yn
- "A_TEL_Voice" => "A_TEL_Voice", //yn
- "A_TEL_Msg" => "A_TEL_Msg", //yn
- "A_TEL_Fax" => "A_TEL_Fax", //yn
- "A_TEL_Prefer" => "A_TEL_Prefer", //yn
- "B_TEL" => "B_TEL",
- "B_TEL_Work" => "B_TEL_Work", //yn
- "B_TEL_Home" => "B_TEL_Home", //yn
- "B_TEL_Voice" => "B_TEL_Voice", //yn
- "B_TEL_Msg" => "B_TEL_Msg", //yn
- "B_TEL_Fax" => "B_TEL_Fax", //yn
- "B_TEL_Prefer" => "B_TEL_Prefer", //yn
- "C_TEL" => "C_TEL",
- "C_TEL_Work" => "C_TEL_Work", //yn
- "C_TEL_Home" => "C_TEL_Home", //yn
- "C_TEL_Voice" => "C_TEL_Voice", //yn
- "C_TEL_Msg" => "C_TEL_Msg", //yn
- "C_TEL_Fax" => "C_TEL_Fax", //yn
- "C_TEL_Prefer" => "C_TEL_Prefer", //yn
- "D_EMAIL" => "D_EMAIL",
- "D_EMAILTYPE" => "D_EMAILTYPE", //'INTERNET','CompuServe',etc...
- "D_EMAIL_Work" => "D_EMAIL_Work", //yn
- "D_EMAIL_Home" => "D_EMAIL_Home", //yn
- );
+ $this->stock_contact_fields = array(
+ "fn" => "fn", //'firstname lastname'
+ "sound" => "sound",
+ "org_name" => "org_name", //company
+ "org_unit" => "org_unit", //division
+ "title" => "title",
+ "n_given" => "n_given", //firstname
+ "n_family" => "n_family", //lastname
+ "n_middle" => "n_middle",
+ "n_prefix" => "n_prefix",
+ "n_suffix" => "n_suffix",
+ "label" => "label",
+ "adr_street" => "adr_street",
+ "adr_locality" => "adr_locality", //city
+ "adr_region" => "adr_region", //state
+ "adr_postalcode" => "adr_postalcode", //zip
+ "adr_countryname" => "adr_countryname",
+ "adr_work" => "adr_work", //yn
+ "adr_home" => "adr_home", //yn
+ "adr_parcel" => "adr_parcel", //yn
+ "adr_postal" => "adr_postal", //yn
+ "tz" => "tz",
+ "geo" => "geo",
+ "a_tel" => "a_teL",
+ "a_tel_work" => "a_tel_work", //yn
+ "a_tel_home" => "a_tel_home", //yn
+ "a_tel_voice" => "a_tel_voice", //yn
+ "a_tel_msg" => "a_tel_msg", //yn
+ "a_tel_fax" => "a_tel_fax", //yn
+ "a_tel_prefer" => "a_tel_prefer", //yn
+ "b_tel" => "b_tel",
+ "b_tel_work" => "b_tel_work", //yn
+ "b_tel_home" => "b_tel_home", //yn
+ "b_tel_voice" => "b_tel_voice", //yn
+ "b_tel_msg" => "b_tel_msg", //yn
+ "b_tel_fax" => "b_tel_fax", //yn
+ "b_tel_prefer" => "b_tel_prefer", //yn
+ "c_tel" => "c_tel",
+ "c_tel_work" => "c_tel_work", //yn
+ "c_tel_home" => "c_tel_home", //yn
+ "c_tel_voice" => "c_tel_voice", //yn
+ "c_tel_msg" => "c_tel_msg", //yn
+ "c_tel_fax" => "c_tel_fax", //yn
+ "c_tel_prefer" => "c_tel_prefer", //yn
+ "d_email" => "d_email",
+ "d_emailtype" => "d_emailtype", //'INTERNET','CompuServe',etc...
+ "d_email_work" => "d_email_work", //yn
+ "d_email_home" => "d_email_home", //yn
+ );
- $this->email_types = array("INTERNET" => "INTERNET",
- "CompuServe" => "CompuServe",
- "AOL" => "AOL",
- "Prodigy" => "Prodigy",
- "eWorld" => "eWorld",
- "AppleLink" => "AppleLink",
- "AppleTalk" => "AppleTalk",
- "PowerShare" => "PowerShare",
- "IBMMail" => "IBMMail",
- "ATTMail" => "ATTMail",
- "MCIMail" => "MCIMail",
- "X.400" => "X.400",
- "TLX" => "TLX"
- );
+ $this->email_types = array(
+ "INTERNET" => "INTERNET",
+ "CompuServe" => "CompuServe",
+ "AOL" => "AOL",
+ "Prodigy" => "Prodigy",
+ "eWorld" => "eWorld",
+ "AppleLink" => "AppleLink",
+ "AppleTalk" => "AppleTalk",
+ "PowerShare" => "PowerShare",
+ "IBMMail" => "IBMMail",
+ "ATTMail" => "ATTMail",
+ "MCIMail" => "MCIMail",
+ "X.400" => "X.400",
+ "TLX" => "TLX"
+ );