forked from extern/egroupware
245 lines
7.7 KiB
Plaintext
245 lines
7.7 KiB
Plaintext
/**************************************************************************\
|
|
* phpGroupWare API - Contacts class documentation *
|
|
* This file written by Miles Lott <milosch@phpgroupware.org> *
|
|
* -------------------------------------------------------------------------*
|
|
* This library is free software; you can redistribute it and/or modify it *
|
|
* under the terms of the GNU Lesser General Public License as published by *
|
|
* the Free Software Foundation; either version 2.1 of the License, *
|
|
* or any later version. *
|
|
* This library is distributed in the hope that it will be useful, but *
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
|
* See the GNU Lesser General Public License for more details. *
|
|
* You should have received a copy of the GNU Lesser General Public License *
|
|
* along with this library; if not, write to the Free Software Foundation, *
|
|
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
|
\**************************************************************************/
|
|
|
|
/* $Id$ */
|
|
|
|
|
|
Starting with the most cumbersome function:
|
|
|
|
function read($start,$offset,$fields,$query="",$filter="",$sort="",$order="")
|
|
|
|
Purpose:
|
|
Returns a list of contacts based on limits, query, and filter,
|
|
in an array of name/values, e.g.:
|
|
|
|
$fields[0]["id"] => "354",
|
|
$fields[0]["email"] => "name@domain.com", ...
|
|
|
|
$fields[1]["id"] => "355",
|
|
$fields[1]["email"] => "othername@otherdomain.com", ...
|
|
|
|
Inputs:
|
|
|
|
$start = start of list, e.g. 1,16,31
|
|
$offset = numrows, e.g. 15,30,etc. from nextmatchs, usually
|
|
$fields = simple array of fields to return:
|
|
|
|
$qfields = array(
|
|
'id' => 'id',
|
|
'n_given' => 'n_given
|
|
);
|
|
|
|
$query = simple string to search for, e.g. "milosch" or "555"
|
|
|
|
$filter = for 'accounting' fields other than id (use read_single_entry for
|
|
that):
|
|
|
|
owner = account_id of record owner
|
|
access = public/private
|
|
cat_id = category id for the record
|
|
lid = account_lid for account records stored here, if any
|
|
tid = type id:
|
|
n = normal contact - almost always use this
|
|
p = profiles for hr, tied to account records
|
|
u = user account, if stored in contacts class
|
|
g = group account, ""
|
|
|
|
Filters should be in the format:
|
|
|
|
example 1: 'tid=n' filter for normal contacts
|
|
example 2: 'tid=u,lid=milosch' filter user accounts for lid
|
|
'milosch'
|
|
etc...
|
|
|
|
$sort = ASC, DESC, or "" (defaults to ASC)
|
|
|
|
$order = sort on this field, e.g. n_given
|
|
|
|
|
|
function read_single_entry($id,$fields)
|
|
|
|
Purpose:
|
|
returns a single array of name/value based on id
|
|
and field selection, e.g.:
|
|
|
|
$fields[0]["email"] => "name@domain.com"
|
|
$fields[0]["n_given"] => "Bob"
|
|
|
|
Inputs:
|
|
|
|
$id = id of entry you want to return
|
|
|
|
$fields = simple array of fields to return
|
|
|
|
$qfields = array(
|
|
'id' => 'id',
|
|
'n_given' => 'n_given
|
|
);
|
|
|
|
|
|
function add($owner,$fields,$access='',$cat_id='',$tid='n')
|
|
|
|
Purpose:
|
|
|
|
Add a new contact record of the type, category and access sent
|
|
with a field list.
|
|
|
|
Inputs:
|
|
|
|
$owner = id of user adding this data
|
|
|
|
$fields = simple array of fields to write into the new record
|
|
|
|
$access = public/private
|
|
|
|
$cat_id = category id for the record, if desired
|
|
|
|
$tid = type id ( see read() above ), defaults to 'n'
|
|
|
|
|
|
function update($id,$owner,$fields,$access='',$cat_id='',$tid='')
|
|
|
|
Purpose:
|
|
|
|
Update an entry already in the contacts list
|
|
|
|
Inputs:
|
|
|
|
$id = id of entry you want to update
|
|
|
|
$owner = id of user modifying this data
|
|
|
|
$fields = simple array of fields to update in the record
|
|
(see examples above)
|
|
|
|
$access = public/private
|
|
|
|
$cat_id = category id for the record, if desired
|
|
|
|
|
|
$tid = type id ( see read() above ), defaults to 'n'
|
|
|
|
|
|
function delete_($id)
|
|
|
|
Purpose:
|
|
|
|
Delete an entry already in the contacts list
|
|
|
|
Inputs:
|
|
|
|
$id = id of entry you want to delete
|
|
|
|
|
|
Stock contact fields, other than accounting fields mentioned above:
|
|
|
|
$this->stock_contact_fields = array(
|
|
"fn" => "fn", // 'prefix given middle family suffix'
|
|
"n_given" => "n_given", // firstname
|
|
"n_family" => "n_family", // lastname
|
|
"n_middle" => "n_middle",
|
|
"n_prefix" => "n_prefix",
|
|
"n_suffix" => "n_suffix",
|
|
"sound" => "sound",
|
|
"bday" => "bday", // Birthday (12/31/1969)
|
|
"note" => "note", // Note, description, etc.
|
|
"tz" => "tz", // Hours offset from phpgw install
|
|
"geo" => "geo", // Not used
|
|
"url" => "url",
|
|
"pubkey" => "pubkey", // Similar to note, but for public encryption key
|
|
|
|
"org_name" => "org_name", // company
|
|
"org_unit" => "org_unit", // division
|
|
"title" => "title",
|
|
|
|
"adr_one_street" => "adr_one_street", // Business address entry
|
|
"adr_one_locality" => "adr_one_locality",
|
|
"adr_one_region" => "adr_one_region",
|
|
"adr_one_postalcode" => "adr_one_postalcode",
|
|
"adr_one_countryname" => "adr_one_countryname",
|
|
"adr_one_type" => "adr_one_type", // address is domestic/intl/postal/parcel/work/home
|
|
"label" => "label", // address label
|
|
|
|
"adr_two_street" => "adr_two_street", // Home address entry
|
|
"adr_two_locality" => "adr_two_locality",
|
|
"adr_two_region" => "adr_two_region",
|
|
"adr_two_postalcode" => "adr_two_postalcode",
|
|
"adr_two_countryname" => "adr_two_countryname",
|
|
"adr_two_type" => "adr_two_type", // address is domestic/intl/postal/parcel/work/home
|
|
|
|
"tel_work" => "tel_work",
|
|
"tel_home" => "tel_home",
|
|
"tel_voice" => "tel_voice",
|
|
"tel_fax" => "tel_fax",
|
|
"tel_msg" => "tel_msg",
|
|
"tel_cell" => "tel_cell",
|
|
"tel_pager" => "tel_pager",
|
|
"tel_bbs" => "tel_bbs",
|
|
"tel_modem" => "tel_modem",
|
|
"tel_car" => "tel_car",
|
|
"tel_isdn" => "tel_isdn",
|
|
"tel_video" => "tel_video",
|
|
"tel_prefer" => "tel_prefer", // home;work;voice
|
|
"email" => "email",
|
|
"email_type" => "email_type", //'INTERNET','CompuServe',etc...
|
|
"email_home" => "email_home",
|
|
"email_home_type" => "email_home_type" //'INTERNET','CompuServe',etc...
|
|
);
|
|
|
|
Other useful arrays for setting option dialogs, etc.
|
|
|
|
// Used to set adr_one_type/adr_two_type, e.g. 'intl;work'
|
|
$this->adr_types = array(
|
|
"dom" => lang("Domestic"),
|
|
"intl" => lang("International"),
|
|
"parcel" => lang("Parcel"),
|
|
"postal" => lang("Postal")
|
|
);
|
|
|
|
// Used to set preferred number field, e.g. 'cell' or 'work'
|
|
$this->tel_types = array(
|
|
"work" => "work",
|
|
"home" => "home",
|
|
"voice" => "voice",
|
|
"fax" => "fax",
|
|
"msg" => "msg",
|
|
"cell" => "cell",
|
|
"pager" => "pager",
|
|
"bbs" => "bbs",
|
|
"modem" => "modem",
|
|
"car" => "car",
|
|
"isdn" => "isdn",
|
|
"video" => "video"
|
|
);
|
|
|
|
$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"
|
|
);
|
|
|