mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 23:00:56 +01:00
Starting to commit mostly working redesign using 3layer
This commit is contained in:
parent
17fb6dc9f2
commit
ace91371c8
309
addressbook/inc/class.boXport.inc.php
Normal file
309
addressbook/inc/class.boXport.inc.php
Normal file
@ -0,0 +1,309 @@
|
|||||||
|
<?php
|
||||||
|
/**************************************************************************\
|
||||||
|
* phpGroupWare - addressbook *
|
||||||
|
* http://www.phpgroupware.org *
|
||||||
|
* Written by Joseph Engo <jengo@phpgroupware.org> *
|
||||||
|
* -------------------------------------------- *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms of the GNU General Public License as published by the *
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||||
|
* option) any later version. *
|
||||||
|
\**************************************************************************/
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
class boXport
|
||||||
|
{
|
||||||
|
var $public_functions = array(
|
||||||
|
'import' => True,
|
||||||
|
'export' => True
|
||||||
|
);
|
||||||
|
|
||||||
|
var $so;
|
||||||
|
var $contacts;
|
||||||
|
|
||||||
|
var $start;
|
||||||
|
var $limit;
|
||||||
|
var $query;
|
||||||
|
var $sort;
|
||||||
|
var $order;
|
||||||
|
var $filter;
|
||||||
|
var $cat_id;
|
||||||
|
|
||||||
|
var $use_session = False;
|
||||||
|
|
||||||
|
function boXport ($session=False)
|
||||||
|
{
|
||||||
|
global $phpgw;
|
||||||
|
|
||||||
|
$this->contacts = &$phpgw->contacts;
|
||||||
|
$this->so = CreateObject('addressbook.soaddressbook');
|
||||||
|
if($session)
|
||||||
|
{
|
||||||
|
$this->read_sessiondata();
|
||||||
|
$this->use_session = True;
|
||||||
|
}
|
||||||
|
global $start,$limit,$query,$sort,$order,$filter,$cat_id;
|
||||||
|
|
||||||
|
if($start || $start == 0) { $this->start = $start; }
|
||||||
|
if($limit) { $this->limit = $limit; }
|
||||||
|
if($query) { $this->query = $query; }
|
||||||
|
if($sort) { $this->sort = $sort; }
|
||||||
|
if($order) { $this->order = $order; }
|
||||||
|
if($filter) { $this->filter = $filter; }
|
||||||
|
$this->cat_id = $cat_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function save_sessiondata()
|
||||||
|
{
|
||||||
|
global $phpgw,$start,$limit,$query,$sort,$order,$filter,$cat_id;
|
||||||
|
|
||||||
|
if ($this->use_session)
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'start' => $start,
|
||||||
|
'limit' => $limit,
|
||||||
|
'query' => $query,
|
||||||
|
'sort' => $sort,
|
||||||
|
'order' => $order,
|
||||||
|
'filter' => $filter,
|
||||||
|
'cat_id' => $cat_id
|
||||||
|
);
|
||||||
|
if($this->debug) { echo '<br>Save:'; _debug_array($data); }
|
||||||
|
$phpgw->session->appsession('session_data','addressbook',$data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_sessiondata()
|
||||||
|
{
|
||||||
|
global $phpgw;
|
||||||
|
|
||||||
|
$data = $phpgw->session->appsession('session_data','addressbook');
|
||||||
|
if($this->debug) { echo '<br>Read:'; _debug_array($data); }
|
||||||
|
|
||||||
|
$this->start = $data['start'];
|
||||||
|
$this->limit = $data['limit'];
|
||||||
|
$this->query = $data['query'];
|
||||||
|
$this->sort = $data['sort'];
|
||||||
|
$this->order = $data['order'];
|
||||||
|
$this->filter = $data['filter'];
|
||||||
|
$this->cat_id = $data['cat_id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function import()
|
||||||
|
{
|
||||||
|
global $tsvfile,$private;
|
||||||
|
|
||||||
|
include (PHPGW_APP_INC . '/import/' . $conv_type);
|
||||||
|
|
||||||
|
if ($private == '') { $private = 'public'; }
|
||||||
|
$row = 0;
|
||||||
|
$buffer = array();
|
||||||
|
$contacts = new import_conv;
|
||||||
|
|
||||||
|
$buffer = $contacts->import_start_file($buffer);
|
||||||
|
$fp = fopen($tsvfile,'r');
|
||||||
|
if ($contacts->type == 'csv')
|
||||||
|
{
|
||||||
|
while ($data = fgetcsv($fp,8000,','))
|
||||||
|
{
|
||||||
|
$num = count($data);
|
||||||
|
$row++;
|
||||||
|
if ($row == 1)
|
||||||
|
{
|
||||||
|
$header = $data;
|
||||||
|
/* Changed here to ignore the header, set to our array
|
||||||
|
while(list($lhs,$rhs) = each($contacts->import))
|
||||||
|
{
|
||||||
|
$header[] = $lhs;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$buffer = $contacts->import_start_record($buffer);
|
||||||
|
for ($c=0; $c<$num; $c++ )
|
||||||
|
{
|
||||||
|
//Send name/value pairs along with the buffer
|
||||||
|
if ($contacts->import[$header[$c]] != '' && $data[$c] != '')
|
||||||
|
{
|
||||||
|
$buffer = $contacts->import_new_attrib($buffer, $contacts->import[$header[$c]],$data[$c]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$buffer = $contacts->import_end_record($buffer,$private);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif ($contacts->type == 'ldif')
|
||||||
|
{
|
||||||
|
while ($data = fgets($fp,8000))
|
||||||
|
{
|
||||||
|
$url = "";
|
||||||
|
list($name,$value,$extra) = split(':', $data);
|
||||||
|
if (substr($name,0,2) == 'dn')
|
||||||
|
{
|
||||||
|
$buffer = $contacts->import_start_record($buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
$test = trim($value);
|
||||||
|
if ($name && !empty($test) && $extra)
|
||||||
|
{
|
||||||
|
// Probable url string
|
||||||
|
$url = $test;
|
||||||
|
$value = $extra;
|
||||||
|
}
|
||||||
|
elseif ($name && empty($test) && $extra)
|
||||||
|
{
|
||||||
|
// Probable multiline encoding
|
||||||
|
$newval = base64_decode(trim($extra));
|
||||||
|
$value = $newval;
|
||||||
|
//echo $name.':'.$value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($name && $value)
|
||||||
|
{
|
||||||
|
$test = split(',mail=',$value);
|
||||||
|
if ($test[1])
|
||||||
|
{
|
||||||
|
$name = "mail";
|
||||||
|
$value = $test[1];
|
||||||
|
}
|
||||||
|
if ($url)
|
||||||
|
{
|
||||||
|
$name = "homeurl";
|
||||||
|
$value = $url. ':' . $value;
|
||||||
|
}
|
||||||
|
//echo '<br>'.$j.': '.$name.' => '.$value;
|
||||||
|
if ($contacts->import[$name] != '' && $value != '')
|
||||||
|
{
|
||||||
|
$buffer = $contacts->import_new_attrib($buffer, $contacts->import[$name],$value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$buffer = $contacts->import_end_record($buffer,$private);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while ($data = fgets($fp,8000))
|
||||||
|
{
|
||||||
|
$data = trim($data); // RB 2001/05/07 added for Lotus Organizer
|
||||||
|
while (substr($data,-1) == '=') { // '=' at end-of-line --> line to be continued with next line
|
||||||
|
$data = substr($data,0,-1) . trim(fgets($fp,8000));
|
||||||
|
}
|
||||||
|
if (strstr($data,';ENCODING=QUOTED-PRINTABLE')) { // RB 2001/05/07 added for Lotus Organizer
|
||||||
|
$data = quoted_printable_decode(str_replace(';ENCODING=QUOTED-PRINTABLE','',$data));
|
||||||
|
}
|
||||||
|
list($name,$value) = explode(':', $data,2); // RB 2001/05/09 to allow ':' in Values (not only in URL's)
|
||||||
|
|
||||||
|
if (strtolower(substr($name,0,5)) == 'begin')
|
||||||
|
{
|
||||||
|
$buffer = $contacts->import_start_record($buffer);
|
||||||
|
}
|
||||||
|
if ($name && $value)
|
||||||
|
{
|
||||||
|
reset($contacts->import);
|
||||||
|
while ( list($fname,$fvalue) = each($contacts->import) )
|
||||||
|
{
|
||||||
|
if ( strstr(strtolower($name), $contacts->import[$fname]) )
|
||||||
|
{
|
||||||
|
$buffer = $contacts->import_new_attrib($buffer,$name,$value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$buffer = $contacts->import_end_record($buffer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose($fp);
|
||||||
|
$buffer = $contacts->import_end_file($buffer,$private,$cat_id);
|
||||||
|
|
||||||
|
if ($download == '')
|
||||||
|
{
|
||||||
|
if($conv_type == 'Debug LDAP' || $conv_type == 'Debug SQL' )
|
||||||
|
{
|
||||||
|
// filename, default application/octet-stream, length of file, default nocache True
|
||||||
|
$phpgw->browser->content_header($tsvfilename,'',strlen($buffer));
|
||||||
|
echo $buffer;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$phpgw->common->phpgw_header();
|
||||||
|
echo parse_navbar();
|
||||||
|
echo "<pre>$buffer</pre>";
|
||||||
|
echo '<a href="'.$phpgw->link('/addressbook/main.php','menuaction=addressbook.uiaddressbook.get_list') . '">'.lang("OK").'</a>';
|
||||||
|
$phpgw->common->phpgw_footer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$phpgw->common->phpgw_header();
|
||||||
|
echo parse_navbar();
|
||||||
|
echo "<pre>$buffer</pre>";
|
||||||
|
echo '<a href="'.$phpgw->link('/addressbook/main.php','menuaction=addressbook.uiaddressbook.get_list'). '">'.lang("OK").'</a>';
|
||||||
|
$phpgw->common->phpgw_footer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function export()
|
||||||
|
{
|
||||||
|
global $phpgw_info;
|
||||||
|
|
||||||
|
include (PHPGW_APP_INC . '/export/' . $conv_type);
|
||||||
|
$buffer=array();
|
||||||
|
$contacts = new export_conv;
|
||||||
|
|
||||||
|
// Read in user custom fields, if any
|
||||||
|
$customfields = array();
|
||||||
|
while (list($col,$descr) = @each($phpgw_info['user']['preferences']['addressbook']))
|
||||||
|
{
|
||||||
|
if ( substr($col,0,6) == 'extra_' )
|
||||||
|
{
|
||||||
|
$field = ereg_replace('extra_','',$col);
|
||||||
|
$field = ereg_replace(' ','_',$field);
|
||||||
|
$customfields[$field] = ucfirst($field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$extrafields = array(
|
||||||
|
'ophone' => 'ophone',
|
||||||
|
'address2' => 'address2',
|
||||||
|
'address3' => 'address3'
|
||||||
|
);
|
||||||
|
if ($contacts->type != 'vcard')
|
||||||
|
{
|
||||||
|
$contacts->qfields = $contacts->stock_contact_fields;# + $extrafields;# + $customfields;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($cat_id))
|
||||||
|
{
|
||||||
|
$buffer = $contacts->export_start_file($buffer,$cat_id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$buffer = $contacts->export_start_file($buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
for ($i=0;$i<count($contacts->ids);$i++)
|
||||||
|
{
|
||||||
|
$buffer = $contacts->export_start_record($buffer);
|
||||||
|
while( list($name,$value) = each($contacts->currentrecord) )
|
||||||
|
{
|
||||||
|
$buffer = $contacts->export_new_attrib($buffer,$name,$value);
|
||||||
|
}
|
||||||
|
$buffer = $contacts->export_end_record($buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Here, buffer becomes a string suitable for printing
|
||||||
|
$buffer = $contacts->export_end_file($buffer);
|
||||||
|
|
||||||
|
$tsvfilename = $phpgw_info['server']['temp_dir'] . SEP . $tsvfilename;
|
||||||
|
|
||||||
|
return $buffer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
404
addressbook/inc/class.boaddressbook.inc.php
Normal file
404
addressbook/inc/class.boaddressbook.inc.php
Normal file
@ -0,0 +1,404 @@
|
|||||||
|
<?php
|
||||||
|
/**************************************************************************\
|
||||||
|
* phpGroupWare - addressbook *
|
||||||
|
* http://www.phpgroupware.org *
|
||||||
|
* Written by Miles Lott <milosch@phpgroupware.org> *
|
||||||
|
* -------------------------------------------- *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms of the GNU General Public License as published by the *
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||||
|
* option) any later version. *
|
||||||
|
\**************************************************************************/
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
class boaddressbook
|
||||||
|
{
|
||||||
|
var $public_functions = array(
|
||||||
|
'read_entries' => True,
|
||||||
|
'read_entry' => True,
|
||||||
|
'read_last_entry' => True,
|
||||||
|
'add_entry' => True,
|
||||||
|
'add_vcard' => True,
|
||||||
|
'add_email' => True,
|
||||||
|
'copy_entry' => True,
|
||||||
|
'update_entry' => True
|
||||||
|
);
|
||||||
|
|
||||||
|
var $debug = False;
|
||||||
|
|
||||||
|
var $so;
|
||||||
|
var $start;
|
||||||
|
var $limit;
|
||||||
|
var $query;
|
||||||
|
var $sort;
|
||||||
|
var $order;
|
||||||
|
var $filter;
|
||||||
|
var $cat_id;
|
||||||
|
|
||||||
|
var $use_session = False;
|
||||||
|
|
||||||
|
function boaddressbook($session=False)
|
||||||
|
{
|
||||||
|
global $phpgw;
|
||||||
|
|
||||||
|
$this->so = CreateObject('addressbook.soaddressbook');
|
||||||
|
|
||||||
|
if($session)
|
||||||
|
{
|
||||||
|
$this->read_sessiondata();
|
||||||
|
$this->use_session = True;
|
||||||
|
}
|
||||||
|
global $start,$limit,$query,$sort,$order,$filter,$cat_id;
|
||||||
|
|
||||||
|
if($start || $start == 0) { $this->start = $start; }
|
||||||
|
if($limit) { $this->limit = $limit; }
|
||||||
|
if(!empty($query)) { $this->query = $query; }
|
||||||
|
if(!empty($sort)) { $this->sort = $sort; }
|
||||||
|
if(!empty($order)) { $this->order = $order; }
|
||||||
|
if(!empty($filter)) { $this->filter = $filter; }
|
||||||
|
$this->cat_id = $cat_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function save_sessiondata()
|
||||||
|
{
|
||||||
|
global $phpgw,$start,$limit,$query,$sort,$order,$filter,$cat_id;
|
||||||
|
|
||||||
|
if ($this->use_session)
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'start' => $start,
|
||||||
|
'limit' => $limit,
|
||||||
|
'query' => $query,
|
||||||
|
'sort' => $sort,
|
||||||
|
'order' => $order,
|
||||||
|
'filter' => $filter,
|
||||||
|
'cat_id' => $cat_id
|
||||||
|
);
|
||||||
|
if($this->debug) { echo '<br>Save:'; _debug_array($data); }
|
||||||
|
$phpgw->session->appsession('session_data','addressbook',$data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_sessiondata()
|
||||||
|
{
|
||||||
|
global $phpgw;
|
||||||
|
|
||||||
|
$data = $phpgw->session->appsession('session_data','addressbook');
|
||||||
|
if($this->debug) { echo '<br>Read:'; _debug_array($data); }
|
||||||
|
|
||||||
|
$this->start = $data['start'];
|
||||||
|
$this->limit = $data['limit'];
|
||||||
|
$this->query = $data['query'];
|
||||||
|
$this->sort = $data['sort'];
|
||||||
|
$this->order = $data['order'];
|
||||||
|
$this->filter = $data['filter'];
|
||||||
|
$this->cat_id = $data['cat_id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function strip_html($dirty = '')
|
||||||
|
{
|
||||||
|
global $phpgw;
|
||||||
|
|
||||||
|
if ($dirty == ''){$dirty = array();}
|
||||||
|
for($i=0;$i<count($dirty);$i++)
|
||||||
|
{
|
||||||
|
while (list($name,$value) = each($dirty[$i]))
|
||||||
|
{
|
||||||
|
$cleaned[$i][$name] = $phpgw->strip_html($dirty[$i][$name]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $cleaned;
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_entries($start,$limit,$qcols,$qfilter,$userid='')
|
||||||
|
{
|
||||||
|
$entries = $this->so->read_entries($start,$limit,$qcols,$this->query,$qfilter,$this->sort,$this->order,$userid);
|
||||||
|
return $this->strip_html($entries);
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_entry($id,$fields,$userid='')
|
||||||
|
{
|
||||||
|
$entry = $this->so->read_entry($id,$fields,$userid);
|
||||||
|
return $this->strip_html($entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_last_entry($fields)
|
||||||
|
{
|
||||||
|
$entry = $this->so->read_last_entry($fields);
|
||||||
|
return $this->strip_html($entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
function add_vcard()
|
||||||
|
{
|
||||||
|
global $phpgw,$phpgw_info,$uploadedfile;
|
||||||
|
|
||||||
|
if($uploadedfile == 'none' || $uploadedfile == '')
|
||||||
|
{
|
||||||
|
Header('Location: ' . $phpgw->link('/addressbook/main.php','menuaction=addressbook.uivcard.in&action=GetFile'));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$uploaddir = $phpgw_info['server']['temp_dir'] . SEP;
|
||||||
|
|
||||||
|
srand((double)microtime()*1000000);
|
||||||
|
$random_number = rand(100000000,999999999);
|
||||||
|
$newfilename = md5("$uploadedfile, $uploadedfile_name, "
|
||||||
|
. time() . getenv("REMOTE_ADDR") . $random_number );
|
||||||
|
|
||||||
|
copy($uploadedfile, $uploaddir . $newfilename);
|
||||||
|
$ftp = fopen($uploaddir . $newfilename . '.info','w');
|
||||||
|
fputs($ftp,"$uploadedfile_type\n$uploadedfile_name\n");
|
||||||
|
fclose($ftp);
|
||||||
|
|
||||||
|
$filename = $uploaddir . $newfilename;
|
||||||
|
|
||||||
|
$vcard = CreateObject('phpgwapi.vcard');
|
||||||
|
$entry = $vcard->in_file($filename);
|
||||||
|
/* _debug_array($entry);exit; */
|
||||||
|
$this->so->add_entry($phpgw_info['user']['account_id'],$entry,'private','','n');
|
||||||
|
$ab_id = $this->get_lastid();
|
||||||
|
|
||||||
|
/* Delete the temp file. */
|
||||||
|
unlink($filename);
|
||||||
|
unlink($filename . '.info');
|
||||||
|
Header('Location: ' . $phpgw->link('/addressbook/main.php','menuaction=addressbook.uiaddressbook.view&ab_id=' . $ab_id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function add_email()
|
||||||
|
{
|
||||||
|
global $phpgw_info,$name,$referer;
|
||||||
|
|
||||||
|
$named = explode(' ', $name);
|
||||||
|
for ($i=count($named);$i>=0;$i--) { $names[$i] = $named[$i]; }
|
||||||
|
if ($names[2])
|
||||||
|
{
|
||||||
|
$fields['n_given'] = $names[0];
|
||||||
|
$fields['n_middle'] = $names[1];
|
||||||
|
$fields['n_family'] = $names[2];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$fields['n_given'] = $names[0];
|
||||||
|
$fields['n_family'] = $names[1];
|
||||||
|
}
|
||||||
|
$fields['email'] = $add_email;
|
||||||
|
$referer = urlencode($referer);
|
||||||
|
|
||||||
|
$this->so->add_entry($phpgw_info['user']['account_id'],$fields,'private','','n');
|
||||||
|
$ab_id = $this->get_lastid();
|
||||||
|
|
||||||
|
Header('Location: '
|
||||||
|
. $phpgw->link('/addressbook/main.php',"menuaction=addressbook.uiaddressbook.view&ab_id=$ab_id&referer=$referer"));
|
||||||
|
}
|
||||||
|
|
||||||
|
function copy_entry()
|
||||||
|
{
|
||||||
|
global $phpgw,$phpgw_info,$ab_id;
|
||||||
|
|
||||||
|
$addnew = $this->read_entry($ab_id,$this->so->contacts->stock_contact_fields,$phpgw_info['user']['account_id']);
|
||||||
|
|
||||||
|
$addnew[0]['note'] .= "\nCopied from ".$phpgw->accounts->id2name($addnew[0]['owner']).", record #".$addnew[0]['id'].".";
|
||||||
|
$addnew[0]['owner'] = $phpgw_info['user']['account_id'];
|
||||||
|
$addnew[0]['id'] = '';
|
||||||
|
$fields = $addnew[0];
|
||||||
|
|
||||||
|
if ($addnew['tid'])
|
||||||
|
{
|
||||||
|
$this->so->add_entry($fields['owner'],$fields,$fields['access'],$fields['cat_id'],$fields['tid']);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->so->add_entry($fields['owner'],$fields,$fields['access'],$fields['cat_id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$ab_id = $this->get_lastid();
|
||||||
|
Header("Location: " . $phpgw->link('/addressbook/main.php',"menuaction=addressbook.uiaddressbook.edit&ab_id=$ab_id"));
|
||||||
|
}
|
||||||
|
|
||||||
|
function add_entry()
|
||||||
|
{
|
||||||
|
global $phpgw,$phpgw_info;
|
||||||
|
|
||||||
|
$fields = $this->get_form();
|
||||||
|
|
||||||
|
$referer = urlencode($fields['referer']);
|
||||||
|
unset($fields['referer']);
|
||||||
|
|
||||||
|
$this->so->add_entry($phpgw_info['user']['account_id'],$fields,$fields['access'],$fields['cat_id'],$fields['tid']);
|
||||||
|
|
||||||
|
$ab_id = $this->get_lastid();
|
||||||
|
|
||||||
|
Header('Location: '
|
||||||
|
. $phpgw->link('/addressbook/main.php',"menuaction=addressbook.uiaddressbook.view&ab_id=$ab_id&referer=$referer"));
|
||||||
|
$phpgw->common->phpgw_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_lastid()
|
||||||
|
{
|
||||||
|
return $this->so->get_lastid();
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_entry()
|
||||||
|
{
|
||||||
|
global $phpgw,$phpgw_info;
|
||||||
|
|
||||||
|
$fields = $this->get_form();
|
||||||
|
$check = $this->read_entry($fields['ab_id'],array('owner' => 'owner'));
|
||||||
|
|
||||||
|
if (($this->contacts->grants[$check[0]['owner']] & PHPGW_ACL_EDIT) && $check[0]['owner'] != $phpgw_info['user']['account_id'])
|
||||||
|
{
|
||||||
|
$userid = $check[0]['owner'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$userid = $phpgw_info['user']['account_id'];
|
||||||
|
}
|
||||||
|
$referer = urlencode($fields['referer']);
|
||||||
|
unset($fields['referer']);
|
||||||
|
|
||||||
|
$this->so->update_entry($fields['ab_id'],$fields['userid'],$fields,$fields['access'],$fields['cat_id'],$fields['tid']);
|
||||||
|
|
||||||
|
Header("Location: "
|
||||||
|
. $phpgw->link('/addressbook/main.php',"menuaction=addressbook.uiaddressbook.view&ab_id=" . $fields['ab_id'] . "&referer=$referer"));
|
||||||
|
$phpgw->common->phpgw_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_form()
|
||||||
|
{
|
||||||
|
global $entry;
|
||||||
|
/* _debug_array($entry); */
|
||||||
|
|
||||||
|
if (!$entry['bday_month'] && !$entry['bday_day'] && !$entry['bday_year'])
|
||||||
|
{
|
||||||
|
$fields['bday'] = '';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$bday_day = $entry['bday_day'];
|
||||||
|
if (strlen($bday_day) == 1)
|
||||||
|
{
|
||||||
|
$bday_day = '0' . $entry['bday_day'];
|
||||||
|
}
|
||||||
|
$fields['bday'] = $entry['bday_month'] . '/' . $bday_day . '/' . $entry['bday_year'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($entry['url'] == 'http://')
|
||||||
|
{
|
||||||
|
$fields['url'] = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$fields['org_name'] = $entry['company'];
|
||||||
|
$fields['org_unit'] = $entry['department'];
|
||||||
|
$fields['n_given'] = $entry['firstname'];
|
||||||
|
$fields['n_family'] = $entry['lastname'];
|
||||||
|
$fields['n_middle'] = $entry['middle'];
|
||||||
|
$fields['n_prefix'] = $entry['prefix'];
|
||||||
|
$fields['n_suffix'] = $entry['suffix'];
|
||||||
|
if ($entry['prefix']) { $pspc = ' '; }
|
||||||
|
if ($entry['middle']) { $mspc = ' '; } else { $nspc = ' '; }
|
||||||
|
if ($entry['suffix']) { $sspc = ' '; }
|
||||||
|
$fields['fn'] = $entry['prefix'].$pspc.$entry['firstname'].$nspc.$mspc.$entry['middle'].$mspc.$entry['lastname'].$sspc.$entry['suffix'];
|
||||||
|
$fields['email'] = $entry['email'];
|
||||||
|
$fields['email_type'] = $entry['email_type'];
|
||||||
|
$fields['email_home'] = $entry['hemail'];
|
||||||
|
$fields['email_home_type'] = $entry['hemail_type'];
|
||||||
|
$fields['title'] = $entry['title'];
|
||||||
|
$fields['tel_work'] = $entry['wphone'];
|
||||||
|
$fields['tel_home'] = $entry['hphone'];
|
||||||
|
$fields['tel_fax'] = $entry['fax'];
|
||||||
|
$fields['tel_pager'] = $entry['pager'];
|
||||||
|
$fields['tel_cell'] = $entry['mphone'];
|
||||||
|
$fields['tel_msg'] = $entry['msgphone'];
|
||||||
|
$fields['tel_car'] = $entry['carphone'];
|
||||||
|
$fields['tel_video'] = $entry['vidphone'];
|
||||||
|
$fields['tel_isdn'] = $entry['isdnphone'];
|
||||||
|
$fields['adr_one_street'] = $entry['bstreet'];
|
||||||
|
$fields['adr_one_locality'] = $entry['bcity'];
|
||||||
|
$fields['adr_one_region'] = $entry['bstate'];
|
||||||
|
$fields['adr_one_postalcode'] = $entry['bzip'];
|
||||||
|
$fields['adr_one_countryname'] = $entry['bcountry'];
|
||||||
|
|
||||||
|
if($entry['one_dom'])
|
||||||
|
{
|
||||||
|
$typea .= 'dom;';
|
||||||
|
}
|
||||||
|
if($entry['one_intl'])
|
||||||
|
{
|
||||||
|
$typea .= 'intl;';
|
||||||
|
}
|
||||||
|
if($entry['one_parcel'])
|
||||||
|
{
|
||||||
|
$typea .= 'parcel;';
|
||||||
|
}
|
||||||
|
if($entry['one_postal'])
|
||||||
|
{
|
||||||
|
$typea .= 'postal;';
|
||||||
|
}
|
||||||
|
$fields['adr_one_type'] = substr($typea,0,-1);
|
||||||
|
|
||||||
|
$fields['address2'] = $entry['address2'];
|
||||||
|
$fields['address3'] = $entry['address3'];
|
||||||
|
|
||||||
|
$fields['adr_two_street'] = $entry['hstreet'];
|
||||||
|
$fields['adr_two_locality'] = $entry['hcity'];
|
||||||
|
$fields['adr_two_region'] = $entry['hstate'];
|
||||||
|
$fields['adr_two_postalcode'] = $entry['hzip'];
|
||||||
|
$fields['adr_two_countryname'] = $entry['hcountry'];
|
||||||
|
|
||||||
|
if($entry['two_dom'])
|
||||||
|
{
|
||||||
|
$typeb .= 'dom;';
|
||||||
|
}
|
||||||
|
if($entry['two_intl'])
|
||||||
|
{
|
||||||
|
$typeb .= 'intl;';
|
||||||
|
}
|
||||||
|
if($entry['two_parcel'])
|
||||||
|
{
|
||||||
|
$typeb .= 'parcel;';
|
||||||
|
}
|
||||||
|
if($entry['two_postal'])
|
||||||
|
{
|
||||||
|
$typeb .= 'postal;';
|
||||||
|
}
|
||||||
|
$fields['adr_two_type'] = substr($typeb,0,-1);
|
||||||
|
|
||||||
|
while (list($name,$val) = @each($entry['customfields']))
|
||||||
|
{
|
||||||
|
$fields[$name] = $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
$fields['ophone'] = $entry['ophone'];
|
||||||
|
$fields['tz'] = $entry['timezone'];
|
||||||
|
$fields['pubkey'] = $entry['pubkey'];
|
||||||
|
$fields['note'] = $entry['notes'];
|
||||||
|
$fields['label'] = $entry['label'];
|
||||||
|
|
||||||
|
if ($entry['access'] == True)
|
||||||
|
{
|
||||||
|
$fields['access'] = 'private';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$fields['access'] = 'public';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_array($entry['cat_id']))
|
||||||
|
{
|
||||||
|
$fields['cat_id'] = count($entry['cat_id']) > 1 ? ','.implode(',',$entry['cat_id']).',' : $entry['cat_id'][0];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$fields['cat_id'] = $entry['cat_id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$fields['ab_id'] = $entry['ab_id'];
|
||||||
|
$fields['tid'] = $entry['tid'];
|
||||||
|
$fields['referer'] = $entry['referer'];
|
||||||
|
/* _debug_array($fields);exit; */
|
||||||
|
return $fields;
|
||||||
|
} /* end get_form() */
|
||||||
|
}
|
||||||
|
?>
|
87
addressbook/inc/class.soaddressbook.inc.php
Normal file
87
addressbook/inc/class.soaddressbook.inc.php
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<?php
|
||||||
|
/**************************************************************************\
|
||||||
|
* phpGroupWare - addressbook *
|
||||||
|
* http://www.phpgroupware.org *
|
||||||
|
* Written by Joseph Engo <jengo@mail.com> *
|
||||||
|
* -------------------------------------------- *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms of the GNU General Public License as published by the *
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||||
|
* option) any later version. *
|
||||||
|
\**************************************************************************/
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
class soaddressbook
|
||||||
|
{
|
||||||
|
var $contacts;
|
||||||
|
var $rights;
|
||||||
|
|
||||||
|
function soaddressbook()
|
||||||
|
{
|
||||||
|
global $phpgw,$rights;
|
||||||
|
|
||||||
|
$phpgw->contacts = CreateObject('phpgwapi.contacts');
|
||||||
|
|
||||||
|
$this->contacts = &$phpgw->contacts;
|
||||||
|
$this->rights = $rights;
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_entries($start,$offset,$qcols,$query,$qfilter,$sort,$order)
|
||||||
|
{
|
||||||
|
$readrights = $this->rights & PHPGW_ACL_READ;
|
||||||
|
return $this->contacts->read($start,$offset,$qcols,$query,$qfilter,$sort,$order,$readrights);
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_entry($id,$fields)
|
||||||
|
{
|
||||||
|
if ($this->rights & PHPGW_ACL_READ)
|
||||||
|
{
|
||||||
|
return $this->contacts->read_single_entry($id,$fields);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$rtrn = array('No access' => 'No access');
|
||||||
|
return $rtrn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_last_entry($fields)
|
||||||
|
{
|
||||||
|
if ($this->rights & PHPGW_ACL_READ)
|
||||||
|
{
|
||||||
|
return $this->contacts->read_last_entry($fields);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$rtrn = array('No access' => 'No access');
|
||||||
|
return $rtrn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function add_entry($userid,$fields,$access='',$cat_id='',$tid='n')
|
||||||
|
{
|
||||||
|
if ($this->rights & PHPGW_ACL_ADD)
|
||||||
|
{
|
||||||
|
$this->contacts->add($userid,$fields,$access,$cat_id,$tid);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_lastid()
|
||||||
|
{
|
||||||
|
$entry = $this->contacts->read_last_entry();
|
||||||
|
$ab_id = $entry[0]['id'];
|
||||||
|
return $ab_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_entry($id,$userid,$fields,$access,$cat_id)
|
||||||
|
{
|
||||||
|
if ($this->rights & PHPGW_ACL_EDIT)
|
||||||
|
{
|
||||||
|
$this->contacts->update($id,$userid,$fields,$access,$cat_id);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
246
addressbook/inc/class.uiXport.inc.php
Normal file
246
addressbook/inc/class.uiXport.inc.php
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
<?php
|
||||||
|
/**************************************************************************\
|
||||||
|
* phpGroupWare - addressbook *
|
||||||
|
* http://www.phpgroupware.org *
|
||||||
|
* Written by Joseph Engo <jengo@phpgroupware.org> *
|
||||||
|
* -------------------------------------------- *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms of the GNU General Public License as published by the *
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||||
|
* option) any later version. *
|
||||||
|
\**************************************************************************/
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
class uiXport
|
||||||
|
{
|
||||||
|
var $template;
|
||||||
|
var $public_functions = array(
|
||||||
|
'import' => True,
|
||||||
|
'export' => True
|
||||||
|
);
|
||||||
|
var $bo;
|
||||||
|
var $cat;
|
||||||
|
|
||||||
|
var $start;
|
||||||
|
var $limit;
|
||||||
|
var $query;
|
||||||
|
var $sort;
|
||||||
|
var $order;
|
||||||
|
var $filter;
|
||||||
|
var $cat_id;
|
||||||
|
|
||||||
|
function uiXport()
|
||||||
|
{
|
||||||
|
global $phpgw;
|
||||||
|
|
||||||
|
$this->template = &$phpgw->template;
|
||||||
|
$this->cat = CreateObject('phpgwapi.categories');
|
||||||
|
$this->bo = CreateObject('addressbook.boXport',True);
|
||||||
|
|
||||||
|
$this->start = &$this->bo->start;
|
||||||
|
$this->limit = &$this->bo->limit;
|
||||||
|
$this->query = &$this->bo->query;
|
||||||
|
$this->sort = &$this->bo->sort;
|
||||||
|
$this->order = &$this->bo->order;
|
||||||
|
$this->filter = &$this->bo->filter;
|
||||||
|
$this->cat_id = &$this->bo->cat_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Return a select form element with the categories option dialog in it */
|
||||||
|
function cat_option($cat_id='',$notall=False,$java=True,$multiple=False)
|
||||||
|
{
|
||||||
|
if ($java)
|
||||||
|
{
|
||||||
|
$jselect = ' onChange="this.form.submit();"';
|
||||||
|
}
|
||||||
|
/* Setup all and none first */
|
||||||
|
$cats_link = "\n" .'<select name="cat_id'.($multiple?'[]':'').'"' .$jselect . ($multiple ? 'multiple size="3"' : '') . ">\n";
|
||||||
|
if (!$notall)
|
||||||
|
{
|
||||||
|
$cats_link .= '<option value=""';
|
||||||
|
if ($cat_id=="all")
|
||||||
|
{
|
||||||
|
$cats_link .= ' selected';
|
||||||
|
}
|
||||||
|
$cats_link .= '>'.lang("all").'</option>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get global and app-specific category listings */
|
||||||
|
$cats_link .= $this->cat->formated_list('select','all',$cat_id,True);
|
||||||
|
$cats_link .= '</select>'."\n";
|
||||||
|
return $cats_link;
|
||||||
|
}
|
||||||
|
|
||||||
|
function import()
|
||||||
|
{
|
||||||
|
global $phpgw,$convert,$download,$tsvfilename;
|
||||||
|
|
||||||
|
if ($convert)
|
||||||
|
{
|
||||||
|
$buffer = $this->bo->import();
|
||||||
|
print_r($buffer);
|
||||||
|
|
||||||
|
if ($download == '')
|
||||||
|
{
|
||||||
|
if($conv_type == 'Debug LDAP' || $conv_type == 'Debug SQL' )
|
||||||
|
{
|
||||||
|
// filename, default application/octet-stream, length of file, default nocache True
|
||||||
|
$phpgw->browser->content_header($tsvfilename,'',strlen($buffer));
|
||||||
|
echo $buffer;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$phpgw->common->phpgw_header();
|
||||||
|
echo parse_navbar();
|
||||||
|
echo "<pre>$buffer</pre>";
|
||||||
|
echo '<a href="'.$phpgw->link('/addressbook/main.php','menuaction=addressbook.uiaddressbook.get_list') . '">'.lang("OK").'</a>';
|
||||||
|
$phpgw->common->phpgw_footer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$phpgw->common->phpgw_header();
|
||||||
|
echo parse_navbar();
|
||||||
|
echo "<pre>$buffer</pre>";
|
||||||
|
echo '<a href="'.$phpgw->link('/addressbook/main.php','menuaction=addressbook.uiaddressbook.get_list'). '">'.lang("OK").'</a>';
|
||||||
|
$phpgw->common->phpgw_footer();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$phpgw->common->phpgw_header();
|
||||||
|
echo parse_navbar();
|
||||||
|
|
||||||
|
$this->template->set_file(array('import' => 'import.tpl'));
|
||||||
|
|
||||||
|
$dir_handle = opendir(PHPGW_APP_INC . SEP . 'import');
|
||||||
|
$i=0; $myfilearray = '';
|
||||||
|
while ($file = readdir($dir_handle))
|
||||||
|
{
|
||||||
|
//echo "<!-- ".is_file($phpgw_info["server"]["app_root"].$sep."import".$sep.$file)." -->";
|
||||||
|
if ((substr($file, 0, 1) != '.') && is_file(PHPGW_APP_INC . SEP . 'import' . SEP . $file) )
|
||||||
|
{
|
||||||
|
$myfilearray[$i] = $file;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($dir_handle);
|
||||||
|
sort($myfilearray);
|
||||||
|
for ($i=0;$i<count($myfilearray);$i++)
|
||||||
|
{
|
||||||
|
$fname = ereg_replace('_',' ',$myfilearray[$i]);
|
||||||
|
$conv .= '<OPTION VALUE="' . $myfilearray[$i].'">' . $fname . '</OPTION>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->template->set_var('lang_cancel',lang('Cancel'));
|
||||||
|
$this->template->set_var('lang_cat',lang('Select Category'));
|
||||||
|
$this->template->set_var('cancel_url',$phpgw->link('/addressbook/main.php','menuaction=addressbook.uiaddressbook.get_list'));
|
||||||
|
$this->template->set_var('navbar_bg',$phpgw_info['theme']['navbar_bg']);
|
||||||
|
$this->template->set_var('navbar_text',$phpgw_info['theme']['navbar_text']);
|
||||||
|
$this->template->set_var('import_text',lang('Import from LDIF, CSV, or VCard'));
|
||||||
|
$this->template->set_var('action_url',$phpgw->link('/addressbook/main.php','menuaction=addressbook.boXport.import'));
|
||||||
|
$this->template->set_var('cat_link',$this->cat_option($this->cat_id,True,False));
|
||||||
|
$this->template->set_var('tsvfilename','');
|
||||||
|
$this->template->set_var('conv',$conv);
|
||||||
|
$this->template->set_var('debug',lang('Debug output in browser'));
|
||||||
|
$this->template->set_var('filetype',lang('LDIF'));
|
||||||
|
$this->template->set_var('download',lang('Submit'));
|
||||||
|
$this->template->set_var('start',$this->start);
|
||||||
|
$this->template->set_var('sort',$this->sort);
|
||||||
|
$this->template->set_var('order',$this->order);
|
||||||
|
$this->template->set_var('filter',$this->filter);
|
||||||
|
$this->template->set_var('query',$this->query);
|
||||||
|
$this->template->set_var('cat_id',$this->cat_id);
|
||||||
|
$this->template->pparse('out','import');
|
||||||
|
}
|
||||||
|
$phpgw->common->phpgw_footer();
|
||||||
|
}
|
||||||
|
|
||||||
|
function export()
|
||||||
|
{
|
||||||
|
global $phpgw,$phpgw_info,$convert,$tsvfilename;
|
||||||
|
|
||||||
|
if ($convert)
|
||||||
|
{
|
||||||
|
$buffer = $this->bo->export();
|
||||||
|
|
||||||
|
if ($conv_type == 'none')
|
||||||
|
{
|
||||||
|
$phpgw_info['flags']['noheader'] = False;
|
||||||
|
$phpgw_info['flags']['noheader'] = True;
|
||||||
|
$phpgw->common->phpgw_header();
|
||||||
|
echo parse_navbar();
|
||||||
|
echo lang('<b>No conversion type <none> could be located.</b> Please choose a conversion type from the list');
|
||||||
|
echo ' <a href="'.$phpgw->link('/addressbook/main.php','menuaction=addressbook.uiXport.export') . '">'.lang('OK').'</a>';
|
||||||
|
$phpgw->common->phpgw_footer();
|
||||||
|
$phpgw->common->phpgw_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ($download == 'on') || ($o->type == 'pdb') )
|
||||||
|
{
|
||||||
|
// filename, default application/octet-stream, length of file, default nocache True
|
||||||
|
$phpgw->browser->content_header($tsvfilename,'application/octet-stream',strlen($buffer));
|
||||||
|
echo $buffer;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "<pre>\n";
|
||||||
|
echo $buffer;
|
||||||
|
echo "\n</pre>\n";
|
||||||
|
echo '<a href="'.$phpgw->link('/addressbook/index.php','menuaction=addressbook.uiaddressbook.get_list') . '">'.lang('OK').'</a>';
|
||||||
|
$phpgw->common->phpgw_footer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$phpgw->common->phpgw_header();
|
||||||
|
echo parse_navbar();
|
||||||
|
|
||||||
|
$this->template->set_file(array('export' => 'export.tpl'));
|
||||||
|
|
||||||
|
$dir_handle = opendir(PHPGW_APP_INC. SEP . 'export');
|
||||||
|
$i=0; $myfilearray = '';
|
||||||
|
while ($file = readdir($dir_handle))
|
||||||
|
{
|
||||||
|
#echo "<!-- ".is_file($phpgw_info["server"]["app_root"].$sep."conv".$sep.$file)." -->";
|
||||||
|
if ((substr($file, 0, 1) != '.') && is_file(PHPGW_APP_INC . SEP . 'export' . SEP . $file) )
|
||||||
|
{
|
||||||
|
$myfilearray[$i] = $file;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($dir_handle);
|
||||||
|
sort($myfilearray);
|
||||||
|
for ($i=0;$i<count($myfilearray);$i++)
|
||||||
|
{
|
||||||
|
$fname = ereg_replace('_',' ',$myfilearray[$i]);
|
||||||
|
$conv .= ' <option value="'.$myfilearray[$i].'">'.$fname.'</option>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->template->set_var('lang_cancel',lang('Cancel'));
|
||||||
|
$this->template->set_var('lang_cat',lang('Select Category'));
|
||||||
|
$this->template->set_var('cat_link',$this->cat_option($this->cat_id,False,False));
|
||||||
|
$this->template->set_var('cancel_url',$phpgw->link('/addressbook/index.php'));
|
||||||
|
$this->template->set_var('navbar_bg',$phpgw_info['theme']['navbar_bg']);
|
||||||
|
$this->template->set_var('navbar_text',$phpgw_info['theme']['navbar_text']);
|
||||||
|
$this->template->set_var('export_text',lang('Export from Addressbook'));
|
||||||
|
$this->template->set_var('action_url',$phpgw->link('/addressbook/export.php'));
|
||||||
|
$this->template->set_var('filename',lang('Export file name'));
|
||||||
|
$this->template->set_var('conv',$conv);
|
||||||
|
$this->template->set_var('debug',lang(''));
|
||||||
|
$this->template->set_var('download',lang('Submit'));
|
||||||
|
$this->template->set_var('start',$this->start);
|
||||||
|
$this->template->set_var('sort',$this->sort);
|
||||||
|
$this->template->set_var('order',$this->order);
|
||||||
|
$this->template->set_var('filter',$this->filter);
|
||||||
|
$this->template->set_var('query',$this->query);
|
||||||
|
$this->template->set_var('cat_id',$this->cat_id);
|
||||||
|
$this->template->pparse('out','export');
|
||||||
|
|
||||||
|
$phpgw->common->phpgw_footer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
1300
addressbook/inc/class.uiaddressbook.inc.php
Normal file
1300
addressbook/inc/class.uiaddressbook.inc.php
Normal file
File diff suppressed because it is too large
Load Diff
197
addressbook/inc/class.uivcard.inc.php
Normal file
197
addressbook/inc/class.uivcard.inc.php
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
<?php
|
||||||
|
/**************************************************************************\
|
||||||
|
* phpGroupWare - Addressbook *
|
||||||
|
* http://www.phpgroupware.org *
|
||||||
|
* Written by Joseph Engo <jengo@phpgroupware.org> and *
|
||||||
|
* Miles Lott <miloschphpgroupware.org> *
|
||||||
|
* -------------------------------------------- *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms of the GNU General Public License as published by the *
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||||
|
* option) any later version. *
|
||||||
|
\**************************************************************************/
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
class uivcard
|
||||||
|
{
|
||||||
|
var $template;
|
||||||
|
var $contacts;
|
||||||
|
var $browser;
|
||||||
|
var $vcard;
|
||||||
|
var $bo;
|
||||||
|
|
||||||
|
var $public_functions = array(
|
||||||
|
'in' => True,
|
||||||
|
'out' => True
|
||||||
|
);
|
||||||
|
|
||||||
|
var $extrafields = array(
|
||||||
|
'ophone' => 'ophone',
|
||||||
|
'address2' => 'address2',
|
||||||
|
'address3' => 'address3'
|
||||||
|
);
|
||||||
|
|
||||||
|
function uivcard()
|
||||||
|
{
|
||||||
|
global $phpgw;
|
||||||
|
$this->template = &$phpgw->template;
|
||||||
|
$this->contacts = &$phpgw->contacts;
|
||||||
|
$this->browser = CreateObject('phpgwapi.browser');
|
||||||
|
$this->vcard = CreateObject('phpgwapi.vcard');
|
||||||
|
$this->bo = CreateObject('addressbook.boaddressbook',True);
|
||||||
|
}
|
||||||
|
|
||||||
|
function in()
|
||||||
|
{
|
||||||
|
global $phpgw,$phpgw_info,$action;
|
||||||
|
|
||||||
|
$phpgw->common->phpgw_header();
|
||||||
|
echo parse_navbar();
|
||||||
|
|
||||||
|
echo '<body bgcolor="' . $phpgw_info['theme']['bg_color'] . '">';
|
||||||
|
|
||||||
|
if ($action == 'GetFile')
|
||||||
|
{
|
||||||
|
echo '<b><center>' . lang('You must select a vcard. (*.vcf)') . '</b></center><br><br>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->template->set_file(array('vcardin' => 'vcardin.tpl'));
|
||||||
|
|
||||||
|
$this->template->set_var('vcard_header','<p> <b>' . lang('Address book - VCard in') . '</b><hr><p>');
|
||||||
|
$this->template->set_var('action_url',$phpgw->link('/addressbook/main.php','menuaction=addressbook.boaddressbook.add_vcard'));
|
||||||
|
$this->template->set_var('lang_access',lang('Access'));
|
||||||
|
$this->template->set_var('lang_groups',lang('Which groups'));
|
||||||
|
$this->template->set_var('access_option',$access_option);
|
||||||
|
$this->template->set_var('group_option',$group_option);
|
||||||
|
|
||||||
|
$this->template->pparse('out','vcardin');
|
||||||
|
|
||||||
|
$phpgw->common->phpgw_footer();
|
||||||
|
}
|
||||||
|
|
||||||
|
function out()
|
||||||
|
{
|
||||||
|
global $phpgw,$phpgw_info,$ab_id;
|
||||||
|
|
||||||
|
if ($nolname || $nofname)
|
||||||
|
{
|
||||||
|
$phpgw->common->phpgw_header();
|
||||||
|
echo parse_navbar();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$ab_id)
|
||||||
|
{
|
||||||
|
Header('Location: ' . $phpgw->link('/addressbook/index.php'));
|
||||||
|
$phpgw->common->phpgw_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// First, make sure they have permission to this entry
|
||||||
|
$check = $this->bo->read_entry($ab_id,array('owner' => 'owner'));
|
||||||
|
$perms = $this->contacts->check_perms($this->contacts->grants[$check[0]['owner']],PHPGW_ACL_READ);
|
||||||
|
|
||||||
|
if ( (!$perms) && ($check[0]['owner'] != $phpgw_info['user']['account_id']) )
|
||||||
|
{
|
||||||
|
Header("Location: " . $phpgw->link('/addressbook/main.php','menuaction=addressbook.uiaddressbook.get_list'));
|
||||||
|
$phpgw->common->phpgw_exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
$extrafields = array('address2' => 'address2');
|
||||||
|
$qfields = $this->contacts->stock_contact_fields + $extrafields;
|
||||||
|
|
||||||
|
$fieldlist = $this->bo->read_entry($ab_id,$qfields);
|
||||||
|
$fields = $fieldlist[0];
|
||||||
|
|
||||||
|
$email = $fields['email'];
|
||||||
|
$emailtype = $fields['email_type'];
|
||||||
|
if (!$emailtype)
|
||||||
|
{
|
||||||
|
$fields['email_type'] = 'INTERNET';
|
||||||
|
}
|
||||||
|
$hemail = $fields['email_home'];
|
||||||
|
$hemailtype = $fields['email_home_type'];
|
||||||
|
if (!$hemailtype)
|
||||||
|
{
|
||||||
|
$fields['email_home_type'] = 'INTERNET';
|
||||||
|
}
|
||||||
|
$firstname = $fields['n_given'];
|
||||||
|
$lastname = $fields['n_family'];
|
||||||
|
|
||||||
|
if(!$nolname && !$nofname)
|
||||||
|
{
|
||||||
|
/* First name and last must be in the vcard. */
|
||||||
|
if($lastname == '')
|
||||||
|
{
|
||||||
|
/* Run away here. */
|
||||||
|
Header('Location: ' . $phpgw->link('/addressbook/main.php',"menuaction=addressbook.uivcard.out&nolname=1&ab_id=$ab_id"));
|
||||||
|
}
|
||||||
|
if($firstname == '')
|
||||||
|
{
|
||||||
|
Header('Location: ' . $phpgw->link('/addressbook/main.php',"menuaction=addressbook.uivcard.out&nofname=1&ab_id=$ab_id"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($email)
|
||||||
|
{
|
||||||
|
$fn = explode('@',$email);
|
||||||
|
$filename = sprintf("%s.vcf", $fn[0]);
|
||||||
|
}
|
||||||
|
elseif ($hemail)
|
||||||
|
{
|
||||||
|
$fn = explode('@',$hemail);
|
||||||
|
$filename = sprintf("%s.vcf", $fn[0]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$fn = strtolower($firstname);
|
||||||
|
$filename = sprintf("%s.vcf", $fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set translation variable
|
||||||
|
$myexport = $this->vcard->export;
|
||||||
|
// check that each $fields exists in the export array and
|
||||||
|
// set a new array to equal the translation and original value
|
||||||
|
while( list($name,$value) = each($fields) )
|
||||||
|
{
|
||||||
|
if ($myexport[$name] && ($value != "") )
|
||||||
|
{
|
||||||
|
//echo '<br>'.$name."=".$fields[$name]."\n";
|
||||||
|
$buffer[$myexport[$name]] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create a vcard from this translated array
|
||||||
|
$entry = $this->vcard->out($buffer);
|
||||||
|
// print it using browser class for headers
|
||||||
|
// filename, mimetype, no length, default nocache True
|
||||||
|
$this->browser->content_header($filename,'text/x-vcard');
|
||||||
|
echo $entry;
|
||||||
|
$phpgw->common->exit;
|
||||||
|
} /* !nolname && !nofname */
|
||||||
|
|
||||||
|
if($nofname)
|
||||||
|
{
|
||||||
|
echo '<br><br><center>';
|
||||||
|
echo lang("This person's first name was not in the address book.") .'<br>';
|
||||||
|
echo lang('Vcards require a first name entry.') . '<br><br>';
|
||||||
|
echo '<a href="' . $phpgw->link('/addressbook/index.php',
|
||||||
|
"order=$order&start=$start&filter=$filter&query=$query&sort=$sort&cat_id=$cat_id") . '">' . lang('OK') . '</a>';
|
||||||
|
echo '</center>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if($nolname)
|
||||||
|
{
|
||||||
|
echo '<br><br><center>';
|
||||||
|
echo lang("This person's last name was not in the address book.") . '<br>';
|
||||||
|
echo lang('Vcards require a last name entry.') . '<br><br>';
|
||||||
|
echo '<a href="' . $phpgw->link('/addressbook/index.php',
|
||||||
|
"order=$order&start=$start&filter=$filter&query=$query&sort=$sort&cat_id=$cat_id") . '">' . lang('OK') . '</a>';
|
||||||
|
echo '</center>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if($nolname || $nofname)
|
||||||
|
{
|
||||||
|
$phpgw->common->phpgw_footer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -1,244 +0,0 @@
|
|||||||
/**************************************************************************\
|
|
||||||
* 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"
|
|
||||||
);
|
|
||||||
|
|
@ -12,10 +12,8 @@
|
|||||||
|
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
// I don't think this is needed anymore
|
/* I don't think this is needed anymore */
|
||||||
|
/* Perform acl check, set $rights */
|
||||||
// Perform acl check, set $rights
|
|
||||||
|
|
||||||
if(!isset($owner)) { $owner = 0; }
|
if(!isset($owner)) { $owner = 0; }
|
||||||
|
|
||||||
$grants = $phpgw->acl->get_grants('addressbook');
|
$grants = $phpgw->acl->get_grants('addressbook');
|
||||||
@ -38,7 +36,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Generic formatted list function */
|
|
||||||
function formatted_list($name,$list,$id='',$default=False,$java=False)
|
function formatted_list($name,$list,$id='',$default=False,$java=False)
|
||||||
{
|
{
|
||||||
if ($java)
|
if ($java)
|
||||||
@ -67,61 +64,16 @@
|
|||||||
return $select;
|
return $select;
|
||||||
}
|
}
|
||||||
|
|
||||||
function read_custom_fields($start='',$limit='',$query='',$sort='ASC')
|
|
||||||
{
|
|
||||||
global $phpgw,$phpgw_info;
|
|
||||||
$phpgw->preferences->read_repository($phpgw_info['user']['account_id']);
|
|
||||||
|
|
||||||
$i=0;$j=0;
|
|
||||||
while (list($col,$descr) = @each($phpgw_info["user"]["preferences"]["addressbook"]))
|
|
||||||
{
|
|
||||||
if ( substr($col,0,6) == 'extra_' )
|
|
||||||
{
|
|
||||||
$fields[$j]['name'] = ereg_replace('extra_','',$col);
|
|
||||||
$fields[$j]['name'] = ereg_replace(' ','_',$fields[$j]['name']);
|
|
||||||
$fields[$j]['id'] = $i;
|
|
||||||
|
|
||||||
if ($query && ($fields[$j]['name'] != $query))
|
|
||||||
{
|
|
||||||
unset($fields[$j]['name']);
|
|
||||||
unset($fields[$j]['id']);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//echo "<br>".$j.": '".$fields[$j]['name']."'";
|
|
||||||
$j++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
return $fields;
|
|
||||||
}
|
|
||||||
|
|
||||||
function save_custom_field($old='',$new='')
|
|
||||||
{
|
|
||||||
global $phpgw,$phpgw_info;
|
|
||||||
|
|
||||||
$phpgw->preferences->read_repository($phpgw_info['user']['account_id']);
|
|
||||||
if ($old)
|
|
||||||
{
|
|
||||||
$phpgw->preferences->delete("addressbook","extra_".$old);
|
|
||||||
}
|
|
||||||
if($new)
|
|
||||||
{
|
|
||||||
$phpgw->preferences->add("addressbook","extra_".$new);
|
|
||||||
}
|
|
||||||
$phpgw->preferences->save_repository(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return a select form element with the categories option dialog in it */
|
/* Return a select form element with the categories option dialog in it */
|
||||||
function cat_option($cat_id='',$notall=False,$java=True,$multiple=False)
|
function cat_option($cat_id='',$notall=False,$java=True,$multiple=False)
|
||||||
{
|
{
|
||||||
global $phpgw_info;
|
global $phpgw;
|
||||||
|
|
||||||
if ($java)
|
if ($java)
|
||||||
{
|
{
|
||||||
$jselect = ' onChange="this.form.submit();"';
|
$jselect = ' onChange="this.form.submit();"';
|
||||||
}
|
}
|
||||||
// Setup all and none first
|
/* Setup all and none first */
|
||||||
$cats_link = "\n" .'<select name="cat_id'.($multiple?'[]':'').'"' .$jselect . ($multiple ? 'multiple size="3"' : '') . ">\n";
|
$cats_link = "\n" .'<select name="cat_id'.($multiple?'[]':'').'"' .$jselect . ($multiple ? 'multiple size="3"' : '') . ">\n";
|
||||||
if (!$notall)
|
if (!$notall)
|
||||||
{
|
{
|
||||||
@ -134,43 +86,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Get global and app-specific category listings */
|
/* Get global and app-specific category listings */
|
||||||
$cats = CreateObject('phpgwapi.categories');
|
$cats_link .= $phpgw->categories->formated_list('select','all',$cat_id,True);
|
||||||
$cats_link .= $cats->formated_list('select','all',$cat_id,True);
|
|
||||||
$cats_link .= '</select>'."\n";
|
$cats_link .= '</select>'."\n";
|
||||||
return $cats_link;
|
return $cats_link;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SET THE FONT TO DEFAULT IF IT DOESNT EXISTS */
|
/* this cleans up the fieldnames for preferences */
|
||||||
function set_font()
|
|
||||||
{
|
|
||||||
if($phpgw_info['user']['preferences']['notes']['notes_font'] == '')
|
|
||||||
{
|
|
||||||
$font = "Arial";
|
|
||||||
return $font;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$font = $phpgw_info['user']['preferences']['notes']['notes_font'];
|
|
||||||
return $font;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SET FONT SIZE */
|
|
||||||
function set_font_size()
|
|
||||||
{
|
|
||||||
if($phpgw_info['user']['preferences']['notes']['notes_font_size'] == '')
|
|
||||||
{
|
|
||||||
$font_size = "3";
|
|
||||||
return $font_size;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$font_size = $phpgw_info['user']['preferences']['notes']['notes_font_size'];
|
|
||||||
return $font_size;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// this cleans up the fieldnames for display
|
|
||||||
function display_name($column)
|
function display_name($column)
|
||||||
{
|
{
|
||||||
$abc = array(
|
$abc = array(
|
||||||
@ -211,7 +132,6 @@
|
|||||||
'tel_isdn' => 'isdn phone',
|
'tel_isdn' => 'isdn phone',
|
||||||
'tel_car' => 'car phone',
|
'tel_car' => 'car phone',
|
||||||
'tel_video' => 'video phone',
|
'tel_video' => 'video phone',
|
||||||
|
|
||||||
'tel_prefer' => 'preferred phone',
|
'tel_prefer' => 'preferred phone',
|
||||||
'email' => 'business email',
|
'email' => 'business email',
|
||||||
'email_type' => 'business email type',
|
'email_type' => 'business email type',
|
||||||
@ -236,855 +156,4 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addressbook_strip_html($dirty = '')
|
|
||||||
{
|
|
||||||
global $phpgw;
|
|
||||||
if ($dirty == ""){$dirty = array();}
|
|
||||||
for($i=0;$i<count($dirty);$i++)
|
|
||||||
{
|
|
||||||
while (list($name,$value) = each($dirty[$i])) {
|
|
||||||
$cleaned[$i][$name] = $phpgw->strip_html($dirty[$i][$name]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $cleaned;
|
|
||||||
}
|
|
||||||
|
|
||||||
function addressbook_read_entries($start,$offset,$qcols,$query,$qfilter,$sort,$order,$userid='')
|
|
||||||
{
|
|
||||||
global $contacts,$rights;
|
|
||||||
$readrights = $rights & PHPGW_ACL_READ;
|
|
||||||
$entries = $contacts->read($start,$offset,$qcols,$query,$qfilter,$sort,$order,$readrights);
|
|
||||||
$cleaned = addressbook_strip_html($entries);
|
|
||||||
return $cleaned;
|
|
||||||
}
|
|
||||||
|
|
||||||
function addressbook_read_entry($id,$fields,$userid='')
|
|
||||||
{
|
|
||||||
global $contacts,$rights;
|
|
||||||
if ($rights & PHPGW_ACL_READ)
|
|
||||||
{
|
|
||||||
$entry = $contacts->read_single_entry($id,$fields);
|
|
||||||
$cleaned = addressbook_strip_html($entry);
|
|
||||||
return $cleaned;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$rtrn = array('No access' => 'No access');
|
|
||||||
return $rtrn;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function addressbook_read_last_entry($fields)
|
|
||||||
{
|
|
||||||
global $contacts,$rights;
|
|
||||||
if ($rights & PHPGW_ACL_READ)
|
|
||||||
{
|
|
||||||
$entry = $contacts->read_last_entry($fields);
|
|
||||||
$cleaned = addressbook_strip_html($entry);
|
|
||||||
return $cleaned;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$rtrn = array('No access' => 'No access');
|
|
||||||
return $rtrn;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function addressbook_add_entry($userid,$fields,$access='',$cat_id='',$tid='n')
|
|
||||||
{
|
|
||||||
global $contacts,$rights;
|
|
||||||
if ($rights & PHPGW_ACL_ADD)
|
|
||||||
{
|
|
||||||
$contacts->add($userid,$fields,$access,$cat_id,$tid);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
function addressbook_get_lastid()
|
|
||||||
{
|
|
||||||
global $contacts;
|
|
||||||
$entry = $contacts->read_last_entry();
|
|
||||||
$ab_id = $entry[0]['id'];
|
|
||||||
return $ab_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
function addressbook_update_entry($id,$userid,$fields,$access,$cat_id)
|
|
||||||
{
|
|
||||||
global $contacts,$rights;
|
|
||||||
if ($rights & PHPGW_ACL_EDIT)
|
|
||||||
{
|
|
||||||
$contacts->update($id,$userid,$fields,$access,$cat_id);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Folowing used for add/edit
|
|
||||||
function addressbook_form($format,$action,$title='',$fields='',$customfields='',$cat_id='')
|
|
||||||
{
|
|
||||||
global $phpgw,$phpgw_info,$referer;
|
|
||||||
|
|
||||||
$t = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
|
|
||||||
$t->set_file(array('form' => 'form.tpl'));
|
|
||||||
//$t->set_block('form','add','add');
|
|
||||||
//$t->set_block('form','edit','edit');
|
|
||||||
|
|
||||||
if ( ($phpgw_info['server']['countrylist'] == 'user_choice' &&
|
|
||||||
$phpgw_info['user']['preferences']['common']['countrylist'] == 'use_select') ||
|
|
||||||
($phpgw_info['server']['countrylist'] == 'force_select'))
|
|
||||||
{
|
|
||||||
$countrylist = True;
|
|
||||||
}
|
|
||||||
|
|
||||||
$email = $fields['email'];
|
|
||||||
$emailtype = $fields['email_type'];
|
|
||||||
$hemail = $fields['email_home'];
|
|
||||||
$hemailtype = $fields['email_home_type'];
|
|
||||||
$firstname = $fields['n_given'];
|
|
||||||
$middle = $fields['n_middle'];
|
|
||||||
$prefix = $fields['n_prefix'];
|
|
||||||
$suffix = $fields['n_suffix'];
|
|
||||||
$lastname = $fields['n_family'];
|
|
||||||
$title = $fields['title'];
|
|
||||||
$wphone = $fields['tel_work'];
|
|
||||||
$hphone = $fields['tel_home'];
|
|
||||||
$fax = $fields['tel_fax'];
|
|
||||||
$pager = $fields['tel_pager'];
|
|
||||||
$mphone = $fields['tel_cell'];
|
|
||||||
$ophone = $fields['ophone'];
|
|
||||||
$msgphone = $fields['tel_msg'];
|
|
||||||
$isdnphone = $fields['tel_isdn'];
|
|
||||||
$carphone = $fields['tel_car'];
|
|
||||||
$vidphone = $fields['tel_video'];
|
|
||||||
$preferred = $fields['tel_prefer'];
|
|
||||||
|
|
||||||
$bstreet = $fields['adr_one_street'];
|
|
||||||
$address2 = $fields['address2'];
|
|
||||||
$address3 = $fields['address3'];
|
|
||||||
$bcity = $fields['adr_one_locality'];
|
|
||||||
$bstate = $fields['adr_one_region'];
|
|
||||||
$bzip = $fields['adr_one_postalcode'];
|
|
||||||
$bcountry = $fields['adr_one_countryname'];
|
|
||||||
$one_dom = $fields['one_dom'];
|
|
||||||
$one_intl = $fields['one_intl'];
|
|
||||||
$one_parcel = $fields['one_parcel'];
|
|
||||||
$one_postal = $fields['one_postal'];
|
|
||||||
|
|
||||||
$hstreet = $fields['adr_two_street'];
|
|
||||||
$hcity = $fields['adr_two_locality'];
|
|
||||||
$hstate = $fields['adr_two_region'];
|
|
||||||
$hzip = $fields['adr_two_postalcode'];
|
|
||||||
$hcountry = $fields['adr_two_countryname'];
|
|
||||||
$btype = $fields['adr_two_type'];
|
|
||||||
$two_dom = $fields['two_dom'];
|
|
||||||
$two_intl = $fields['two_intl'];
|
|
||||||
$two_parcel = $fields['two_parcel'];
|
|
||||||
$two_postal = $fields['two_postal'];
|
|
||||||
|
|
||||||
$timezone = $fields['tz'];
|
|
||||||
$bday = $fields['bday'];
|
|
||||||
$notes = stripslashes($fields['note']);
|
|
||||||
$label = stripslashes($fields['label']);
|
|
||||||
$company = $fields['org_name'];
|
|
||||||
$department = $fields['org_unit'];
|
|
||||||
$url = $fields['url'];
|
|
||||||
$pubkey = $fields['pubkey'];
|
|
||||||
$access = $fields['access'];
|
|
||||||
if(!$cat_id) {
|
|
||||||
$cat_id = $fields['cat_id'];
|
|
||||||
}
|
|
||||||
/* allow multiple categories on sql */
|
|
||||||
$cats_link = cat_option(
|
|
||||||
$cat_id,
|
|
||||||
True,
|
|
||||||
False,
|
|
||||||
!$phpgw_info['server']['contact_repository'] || $phpgw_info['server']['contact_repository'] == 'sql'
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($access == 'private')
|
|
||||||
{
|
|
||||||
$access_check = ' checked';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$access_check = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($customfields)
|
|
||||||
{
|
|
||||||
while(list($name,$value) = each($customfields))
|
|
||||||
{
|
|
||||||
$value = ereg_replace('_',' ',$value);
|
|
||||||
$custom .= '
|
|
||||||
<tr bgcolor="' . $phpgw_info['theme']['row_off'] . '">
|
|
||||||
<td> </td>
|
|
||||||
<td><font color="' . $phpgw_info['theme']['th_text'] . '" face="" size="-1">'.$value.':</font></td>
|
|
||||||
<td colspan="3"><INPUT size="30" name="' . $name . '" value="' . $fields[$name] . '"></td>
|
|
||||||
</tr>
|
|
||||||
';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$c = CreateObject("phpgwapi.contacts");
|
|
||||||
|
|
||||||
if ($format != "view")
|
|
||||||
{
|
|
||||||
// Preferred phone number radio buttons
|
|
||||||
$pref[0] = "<font size=\"-2\">";
|
|
||||||
$pref[1] = "(".lang('pref').")</font>";
|
|
||||||
while (list($name,$val) = each($c->tel_types))
|
|
||||||
{
|
|
||||||
$str[$name] = "\n".' <input type="radio" name="tel_prefer" value="'.$name.'"';
|
|
||||||
if ($name == $preferred)
|
|
||||||
{
|
|
||||||
$str[$name] .= ' checked';
|
|
||||||
}
|
|
||||||
$str[$name] .= '>';
|
|
||||||
$str[$name] = $pref[0].$str[$name].$pref[1];
|
|
||||||
$t->set_var("pref_".$name,$str[$name]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strlen($bday) > 2)
|
|
||||||
{
|
|
||||||
list( $month, $day, $year ) = split( '/', $bday );
|
|
||||||
$temp_month[$month] = "SELECTED";
|
|
||||||
$bday_month = "<select name=bday_month>"
|
|
||||||
. "<option value=\"\" $temp_month[0]> </option>"
|
|
||||||
. "<option value=1 $temp_month[1]>" . lang('january') . "</option>"
|
|
||||||
. "<option value=2 $temp_month[2]>" . lang('february') . "</option>"
|
|
||||||
. "<option value=3 $temp_month[3]>" . lang('march') . "</option>"
|
|
||||||
. "<option value=4 $temp_month[4]>" . lang('april') . "</option>"
|
|
||||||
. "<option value=5 $temp_month[5]>" . lang('may') . "</option>"
|
|
||||||
. "<option value=6 $temp_month[6]>" . lang('june') . "</option>"
|
|
||||||
. "<option value=7 $temp_month[7]>" . lang('july') . "</option>"
|
|
||||||
. "<option value=8 $temp_month[8]>" . lang('august') . "</option>"
|
|
||||||
. "<option value=9 $temp_month[9]>" . lang('september') . "</option>"
|
|
||||||
. "<option value=10 $temp_month[10]>" . lang('october') . "</option>"
|
|
||||||
. "<option value=11 $temp_month[11]>" . lang('november') . "</option>"
|
|
||||||
. "<option value=12 $temp_month[12]>" . lang('december') . "</option>"
|
|
||||||
. "</select>";
|
|
||||||
$bday_day = '<input maxlength="2" name="bday_day" value="' . $day . '" size="2">';
|
|
||||||
$bday_year = '<input maxlength="4" name="bday_year" value="' . $year . '" size="4">';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$bday_month = "<select name=bday_month>"
|
|
||||||
. "<option value=\"\" SELECTED> </option>"
|
|
||||||
. "<option value=1>" . lang('january') . "</option>"
|
|
||||||
. "<option value=2>" . lang('february') . "</option>"
|
|
||||||
. "<option value=3>" . lang('march') . "</option>"
|
|
||||||
. "<option value=4>" . lang('april') . "</option>"
|
|
||||||
. "<option value=5>" . lang('may') . "</option>"
|
|
||||||
. "<option value=6>" . lang('june') . "</option>"
|
|
||||||
. "<option value=7>" . lang('july') . "</option>"
|
|
||||||
. "<option value=8>" . lang('august') . "</option>"
|
|
||||||
. "<option value=9>" . lang('september') . "</option>"
|
|
||||||
. "<option value=10>" . lang('october') . "</option>"
|
|
||||||
. "<option value=11>" . lang('november') . "</option>"
|
|
||||||
. "<option value=12>" . lang('december') . "</option>"
|
|
||||||
. "</select>";
|
|
||||||
$bday_day = '<input name="bday_day" size="2" maxlength="2">';
|
|
||||||
$bday_year = '<input name="bday_year" size="4" maxlength="4">';
|
|
||||||
}
|
|
||||||
|
|
||||||
$time_zone = "<select name=\"timezone\">\n";
|
|
||||||
for ($i = -23; $i<24; $i++)
|
|
||||||
{
|
|
||||||
$time_zone .= "<option value=\"$i\"";
|
|
||||||
if ($i == $timezone)
|
|
||||||
{
|
|
||||||
$time_zone .= " selected";
|
|
||||||
}
|
|
||||||
if ($i < 1)
|
|
||||||
{
|
|
||||||
$time_zone .= ">$i</option>\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$time_zone .= ">+$i</option>\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$time_zone .= "</select>\n";
|
|
||||||
|
|
||||||
$email_type = '<select name=email_type>';
|
|
||||||
while ($type = each($c->email_types))
|
|
||||||
{
|
|
||||||
$email_type .= '<option value="'.$type[0].'"';
|
|
||||||
if ($type[0] == $emailtype) { $email_type .= ' selected'; }
|
|
||||||
$email_type .= '>'.$type[1].'</option>';
|
|
||||||
}
|
|
||||||
$email_type .= "</select>";
|
|
||||||
|
|
||||||
reset($c->email_types);
|
|
||||||
$hemail_type = '<select name=hemail_type>';
|
|
||||||
while ($type = each($c->email_types))
|
|
||||||
{
|
|
||||||
$hemail_type .= '<option value="'.$type[0].'"';
|
|
||||||
if ($type[0] == $hemailtype) { $hemail_type .= ' selected'; }
|
|
||||||
$hemail_type .= '>'.$type[1].'</option>';
|
|
||||||
}
|
|
||||||
$hemail_type .= "</select>";
|
|
||||||
|
|
||||||
reset($c->adr_types);
|
|
||||||
while (list($type,$val) = each($c->adr_types))
|
|
||||||
{
|
|
||||||
$badrtype .= "\n".'<INPUT type="checkbox" name="one_'.$type.'"';
|
|
||||||
$ot = 'one_'.$type;
|
|
||||||
eval("
|
|
||||||
if (\$$ot=='on') {
|
|
||||||
\$badrtype \.= ' value=\"on\" checked';
|
|
||||||
}
|
|
||||||
");
|
|
||||||
$badrtype .= '>'.$val;
|
|
||||||
}
|
|
||||||
|
|
||||||
reset($c->adr_types);
|
|
||||||
while (list($type,$val) = each($c->adr_types))
|
|
||||||
{
|
|
||||||
$hadrtype .= "\n".'<INPUT type="checkbox" name="two_'.$type.'"';
|
|
||||||
$tt = 'two_'.$type;
|
|
||||||
eval("
|
|
||||||
if (\$$tt=='on') {
|
|
||||||
\$hadrtype \.= ' value=\"on\" checked';
|
|
||||||
}
|
|
||||||
");
|
|
||||||
$hadrtype .= '>'.$val;
|
|
||||||
}
|
|
||||||
|
|
||||||
$notes = '<TEXTAREA cols="60" name="notes" rows="4">' . $notes . '</TEXTAREA>';
|
|
||||||
$label = '<TEXTAREA cols="60" name="label" rows="6">' . $label . '</TEXTAREA>';
|
|
||||||
$pubkey = '<TEXTAREA cols="60" name="pubkey" rows="6">' . $pubkey . '</TEXTAREA>';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$notes = "<form><TEXTAREA cols=\"60\" name=\"notes\" rows=\"4\">"
|
|
||||||
. $notes . "</TEXTAREA></form>";
|
|
||||||
if ($bday == "//")
|
|
||||||
{
|
|
||||||
$bday = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($action)
|
|
||||||
{
|
|
||||||
echo '<FORM action="' . $phpgw->link('/addressbook/' . $action, 'referer='.urlencode($referer)).'" method="post">';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ereg("^http://",$url))
|
|
||||||
{
|
|
||||||
$url = "http://". $url;
|
|
||||||
}
|
|
||||||
|
|
||||||
$birthday = $phpgw->common->dateformatorder($bday_year,$bday_month,$bday_day)
|
|
||||||
. '<font face="'.$theme["font"].'" size="-2">(e.g. 1969)</font>';
|
|
||||||
if ($format == 'edit')
|
|
||||||
{
|
|
||||||
$create .= '<tr bgcolor="' . $phpgw_info['theme']['th_bg'] . '"><td colspan="2"><font size="-1">' . lang("Created by") . ':</font></td>'
|
|
||||||
. '<td colspan="3"><font size="-1">'
|
|
||||||
. $phpgw->common->grab_owner_name($fields["owner"]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$create .= '';
|
|
||||||
}
|
|
||||||
|
|
||||||
$t->set_var('lang_home',lang('Home'));
|
|
||||||
$t->set_var('lang_business',lang('Business'));
|
|
||||||
$t->set_var('lang_personal',lang('Personal'));
|
|
||||||
|
|
||||||
$t->set_var('lang_lastname',lang('Last Name'));
|
|
||||||
$t->set_var('lastname',$lastname);
|
|
||||||
$t->set_var('lang_firstname',lang('First Name'));
|
|
||||||
$t->set_var('firstname',$firstname);
|
|
||||||
$t->set_var('lang_middle',lang('Middle Name'));
|
|
||||||
$t->set_var('middle',$middle);
|
|
||||||
$t->set_var('lang_prefix',lang('Prefix'));
|
|
||||||
$t->set_var('prefix',$prefix);
|
|
||||||
$t->set_var('lang_suffix',lang('Suffix'));
|
|
||||||
$t->set_var('suffix',$suffix);
|
|
||||||
$t->set_var('lang_birthday',lang('Birthday'));
|
|
||||||
$t->set_var('birthday',$birthday);
|
|
||||||
|
|
||||||
$t->set_var('lang_company',lang('Company Name'));
|
|
||||||
$t->set_var('company',$company);
|
|
||||||
$t->set_var('lang_department',lang('Department'));
|
|
||||||
$t->set_var('department',$department);
|
|
||||||
$t->set_var('lang_title',lang('Title'));
|
|
||||||
$t->set_var('title',$title);
|
|
||||||
$t->set_var('lang_email',lang('Business Email'));
|
|
||||||
$t->set_var('email',$email);
|
|
||||||
$t->set_var('lang_email_type',lang('Business EMail Type'));
|
|
||||||
$t->set_var('email_type',$email_type);
|
|
||||||
$t->set_var('lang_url',lang('URL'));
|
|
||||||
$t->set_var('url',$url);
|
|
||||||
$t->set_var('lang_timezone',lang('time zone offset'));
|
|
||||||
$t->set_var('timezone',$time_zone);
|
|
||||||
$t->set_var('lang_fax',lang('Business Fax'));
|
|
||||||
$t->set_var('fax',$fax);
|
|
||||||
$t->set_var('lang_wphone',lang('Business Phone'));
|
|
||||||
$t->set_var('wphone',$wphone);
|
|
||||||
$t->set_var('lang_pager',lang('Pager'));
|
|
||||||
$t->set_var('pager',$pager);
|
|
||||||
$t->set_var('lang_mphone',lang('Cell Phone'));
|
|
||||||
$t->set_var('mphone',$mphone);
|
|
||||||
$t->set_var('lang_msgphone',lang('Message Phone'));
|
|
||||||
$t->set_var('msgphone',$msgphone);
|
|
||||||
$t->set_var('lang_isdnphone',lang('ISDN Phone'));
|
|
||||||
$t->set_var('isdnphone',$isdnphone);
|
|
||||||
$t->set_var('lang_carphone',lang('Car Phone'));
|
|
||||||
$t->set_var('carphone',$carphone);
|
|
||||||
$t->set_var('lang_vidphone',lang('Video Phone'));
|
|
||||||
$t->set_var('vidphone',$vidphone);
|
|
||||||
|
|
||||||
$t->set_var('lang_ophone',lang('Other Number'));
|
|
||||||
$t->set_var('ophone',$ophone);
|
|
||||||
$t->set_var('lang_bstreet',lang('Business Street'));
|
|
||||||
$t->set_var('bstreet',$bstreet);
|
|
||||||
$t->set_var('lang_address2',lang('Address Line 2'));
|
|
||||||
$t->set_var('address2',$address2);
|
|
||||||
$t->set_var('lang_address3',lang('Address Line 3'));
|
|
||||||
$t->set_var('address3',$address3);
|
|
||||||
$t->set_var('lang_bcity',lang('Business City'));
|
|
||||||
$t->set_var('bcity',$bcity);
|
|
||||||
$t->set_var('lang_bstate',lang('Business State'));
|
|
||||||
$t->set_var('bstate',$bstate);
|
|
||||||
$t->set_var('lang_bzip',lang('Business Zip Code'));
|
|
||||||
$t->set_var('bzip',$bzip);
|
|
||||||
$t->set_var('lang_bcountry',lang('Business Country'));
|
|
||||||
$t->set_var('bcountry',$bcountry);
|
|
||||||
if ($countrylist)
|
|
||||||
{
|
|
||||||
$t->set_var('bcountry',$phpgw->country->form_select($bcountry,'bcountry'));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$t->set_var('bcountry','<input name="bcountry" value="' . $bcountry . '">');
|
|
||||||
}
|
|
||||||
$t->set_var('lang_badrtype',lang('Address Type'));
|
|
||||||
$t->set_var('badrtype',$badrtype);
|
|
||||||
|
|
||||||
$t->set_var('lang_hphone',lang('Home Phone'));
|
|
||||||
$t->set_var('hphone',$hphone);
|
|
||||||
$t->set_var('lang_hemail',lang('Home Email'));
|
|
||||||
$t->set_var('hemail',$hemail);
|
|
||||||
$t->set_var('lang_hemail_type',lang('Home EMail Type'));
|
|
||||||
$t->set_var('hemail_type',$hemail_type);
|
|
||||||
$t->set_var('lang_hstreet',lang('Home Street'));
|
|
||||||
$t->set_var('hstreet',$hstreet);
|
|
||||||
$t->set_var('lang_hcity',lang('Home City'));
|
|
||||||
$t->set_var('hcity',$hcity);
|
|
||||||
$t->set_var('lang_hstate',lang('Home State'));
|
|
||||||
$t->set_var('hstate',$hstate);
|
|
||||||
$t->set_var('lang_hzip',lang('Home Zip Code'));
|
|
||||||
$t->set_var('hzip',$hzip);
|
|
||||||
$t->set_var('lang_hcountry',lang('Home Country'));
|
|
||||||
if ($countrylist)
|
|
||||||
{
|
|
||||||
$t->set_var('hcountry',$phpgw->country->form_select($hcountry,'hcountry'));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$t->set_var('hcountry','<input name="hcountry" value="' . $hcountry . '">');
|
|
||||||
}
|
|
||||||
$t->set_var('lang_hadrtype',lang('Address Type'));
|
|
||||||
$t->set_var('hadrtype',$hadrtype);
|
|
||||||
|
|
||||||
$t->set_var('create',$create);
|
|
||||||
$t->set_var('lang_notes',lang('notes'));
|
|
||||||
$t->set_var('notes',$notes);
|
|
||||||
$t->set_var('lang_label',lang('label'));
|
|
||||||
$t->set_var('label',$label);
|
|
||||||
$t->set_var('lang_pubkey',lang('Public Key'));
|
|
||||||
$t->set_var('pubkey',$pubkey);
|
|
||||||
$t->set_var('access_check',$access_check);
|
|
||||||
|
|
||||||
$t->set_var('lang_private',lang('Private'));
|
|
||||||
|
|
||||||
$t->set_var('lang_cats',lang('Category'));
|
|
||||||
$t->set_var('cats_link',$cats_link);
|
|
||||||
if ($customfields)
|
|
||||||
{
|
|
||||||
$t->set_var('lang_custom',lang('Custom Fields').':');
|
|
||||||
$t->set_var('custom',$custom);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$t->set_var('lang_custom','');
|
|
||||||
$t->set_var('custom','');
|
|
||||||
}
|
|
||||||
$t->set_var('th_bg',$phpgw_info['theme']['th_bg']);
|
|
||||||
$t->set_var('th_text',$phpgw_info['theme']['th_text']);
|
|
||||||
$t->set_var('row_on',$phpgw_info['theme']['row_on']);
|
|
||||||
$t->set_var('row_off',$phpgw_info['theme']['row_off']);
|
|
||||||
$t->set_var('row_text',$phpgw_info['theme']['row_text']);
|
|
||||||
|
|
||||||
$t->pfp('out','form');
|
|
||||||
} //end form function
|
|
||||||
|
|
||||||
function OLDparsevcard($filename,$access='')
|
|
||||||
{
|
|
||||||
global $phpgw;
|
|
||||||
global $phpgw_info;
|
|
||||||
|
|
||||||
$vcard = fopen($filename, 'r');
|
|
||||||
// Make sure we have a file to read.
|
|
||||||
if (!$vcard) {
|
|
||||||
fclose($vcard);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Keep running through this to support vcards
|
|
||||||
// with multiple entries.
|
|
||||||
while (!feof($vcard)) {
|
|
||||||
if(!empty($varray))
|
|
||||||
unset($varray);
|
|
||||||
|
|
||||||
// Make sure our file is a vcard.
|
|
||||||
// I should deal with empty line at the
|
|
||||||
// begining of the file. Those will fail here.
|
|
||||||
$vline = fgets($vcard,20);
|
|
||||||
$vline = strtolower($vline);
|
|
||||||
if(strcmp("begin:vcard", substr($vline, 0, strlen("begin:vcard")) ) != 0) {
|
|
||||||
fclose($vcard);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Write the vcard into an array.
|
|
||||||
// You can have multiple vcards in one file.
|
|
||||||
// I only deal with halve of that. :)
|
|
||||||
// It will only return values from the 1st vcard.
|
|
||||||
$varray[0] = "begin";
|
|
||||||
$varray[1] = "vcard";
|
|
||||||
$i=2;
|
|
||||||
while(!feof($vcard) && strcmp("end:vcard", strtolower(substr($vline, 0, strlen("end:vcard"))) ) !=0 ) {
|
|
||||||
$vline = fgets($vcard,4096);
|
|
||||||
// Check for folded lines and escaped colons '\:'
|
|
||||||
$la = explode(":", $vline);
|
|
||||||
|
|
||||||
if (count($la) > 1) {
|
|
||||||
$varray[$i] = strtolower($la[0]);
|
|
||||||
$i++;
|
|
||||||
|
|
||||||
for($j=1;$j<=count($la);$j++) {
|
|
||||||
$varray[$i] .= $la[$j];
|
|
||||||
}
|
|
||||||
$i++;
|
|
||||||
} else { // This is the continuation of a folded line.
|
|
||||||
$varray[$i-1] .= $la[0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add this entry to the addressbook before moving on to the next one.
|
|
||||||
fillab($varray);
|
|
||||||
} // while(!feof($vcard))
|
|
||||||
|
|
||||||
fclose($vcard);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function fillab($varray,$access='') {
|
|
||||||
global $phpgw;
|
|
||||||
global $phpgw_info;
|
|
||||||
|
|
||||||
$i=0;
|
|
||||||
|
|
||||||
// while($i < count($varray)) {
|
|
||||||
// echo '<br>'.$varray[$i].' %% '.$varray[$i+1];
|
|
||||||
// $i++;$i++;
|
|
||||||
// }
|
|
||||||
// exit;
|
|
||||||
// incremented by 2
|
|
||||||
while($i < count($varray)) {
|
|
||||||
$k = explode(";",$varray[$i]); // Key
|
|
||||||
$v = explode(";",$varray[$i+1]); // Values
|
|
||||||
for($h=0;$h<count($k);$h++) {
|
|
||||||
// Cleanup groupings
|
|
||||||
$k[$h] = ereg_replace("a\.",'',$k[$h]);
|
|
||||||
$k[$h] = ereg_replace("b\.",'',$k[$h]);
|
|
||||||
$k[$h] = ereg_replace("c\.",'',$k[$h]);
|
|
||||||
$k[$h] = ereg_replace("d\.",'',$k[$h]);
|
|
||||||
//echo '<br>kh="'.$k[$h].'",v0="'.$v[0].'",v1="'.$v[1].'",v2="'.$v[2].'",v3="'.$v[3].'",v4="'.$v[4].'",v5="'.$v[5].'",v6="'.$v[6].'",v7="'.$v[7].'"';
|
|
||||||
switch($k[$h]) {
|
|
||||||
case "fn":
|
|
||||||
$fn = $v[0];
|
|
||||||
break;
|
|
||||||
case "n":
|
|
||||||
$lastname = $v[0];
|
|
||||||
$firstname = $v[1];
|
|
||||||
break;
|
|
||||||
case "bday":
|
|
||||||
$bday = $v[0];
|
|
||||||
break;
|
|
||||||
case "url":
|
|
||||||
$url = $v[0];
|
|
||||||
// Fix the result of exploding on ':' above
|
|
||||||
if (substr($url,0,5) == 'http/') {
|
|
||||||
$url = ereg_replace('http//','http://',$url);
|
|
||||||
} elseif (substr($url,0,6) == 'https/') {
|
|
||||||
$url = ereg_replace('https//','https://',$url);
|
|
||||||
} elseif (substr($url,0,7) != 'http://') {
|
|
||||||
$url = 'http://' . $url;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "label":
|
|
||||||
$label = $v[0];
|
|
||||||
break;
|
|
||||||
case "adr": // This one is real ugly. Still! :(
|
|
||||||
if(!$street) {
|
|
||||||
$street = $v[2];
|
|
||||||
$address2 = $v[1] . " " . $v[0];
|
|
||||||
$city = $v[3];
|
|
||||||
$state = $v[4];
|
|
||||||
$zip = $v[5];
|
|
||||||
$country = $v[6];
|
|
||||||
if (strstr($k[$h+1],"intl")) { $adronetype .= "INTL;"; }
|
|
||||||
if (strstr($k[$h+1],"dom")) { $adronetype .= "DOM;"; }
|
|
||||||
} else {
|
|
||||||
$hstreet = $v[2];
|
|
||||||
$hcity = $v[3];
|
|
||||||
$hstate = $v[4];
|
|
||||||
$hzip = $v[5];
|
|
||||||
$hcountry = $v[6];
|
|
||||||
if (strstr($k[$h+1],"intl")) { $adrtwotype .= "INTL;"; }
|
|
||||||
if (strstr($k[$h+1],"dom")) { $adrtwotype .= "DOM;"; }
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "tel":
|
|
||||||
switch ($k[$h+1]) {
|
|
||||||
case "work":
|
|
||||||
$wphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "home":
|
|
||||||
$hphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "cell":
|
|
||||||
$mphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "pager":
|
|
||||||
$pager = $v[0];
|
|
||||||
break;
|
|
||||||
case "fax":
|
|
||||||
$fax = $v[0];
|
|
||||||
break;
|
|
||||||
case "msg":
|
|
||||||
$msgphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "bbs":
|
|
||||||
$bbsphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "modem":
|
|
||||||
$modem = $v[0];
|
|
||||||
break;
|
|
||||||
case "car":
|
|
||||||
$carphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "isdn":
|
|
||||||
$isdn = $v[0];
|
|
||||||
break;
|
|
||||||
case "video":
|
|
||||||
$vidphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "pref":
|
|
||||||
switch ($k[$h+2]) {
|
|
||||||
case "work":
|
|
||||||
$tel_prefer .= "work;";
|
|
||||||
$wphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "home":
|
|
||||||
$tel_prefer .= "home;";
|
|
||||||
$hphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "cell":
|
|
||||||
$tel_prefer .= "cell;";
|
|
||||||
$mphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "pager":
|
|
||||||
$tel_prefer .= "pager;";
|
|
||||||
$pager = $v[0];
|
|
||||||
break;
|
|
||||||
case "fax":
|
|
||||||
$tel_prefer .= "fax;";
|
|
||||||
$fax = $v[0];
|
|
||||||
break;
|
|
||||||
case "msg":
|
|
||||||
$tel_prefer .= "msg;";
|
|
||||||
$msgphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "bbs":
|
|
||||||
$tel_prefer .= "bbs;";
|
|
||||||
$bbsphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "modem":
|
|
||||||
$tel_prefer .= "modem;";
|
|
||||||
$modem = $v[0];
|
|
||||||
break;
|
|
||||||
case "car":
|
|
||||||
$tel_prefer .= "car;";
|
|
||||||
$carphone = $v[0];
|
|
||||||
break;
|
|
||||||
case "isdn":
|
|
||||||
$tel_prefer .= "isdn;";
|
|
||||||
$isdn = $v[0];
|
|
||||||
break;
|
|
||||||
case "video":
|
|
||||||
$tel_prefer .= "video;";
|
|
||||||
$vidphone = $v[0];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
$whphone = $v[0];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "email":
|
|
||||||
if (empty($email)) { $email = $v[0]; }
|
|
||||||
else { $hemail = $v[0]; }
|
|
||||||
switch ($k[$h+1]) {
|
|
||||||
case "compuserve":
|
|
||||||
if (!$adronetype) { $emailtype="CompuServe"; }
|
|
||||||
else { $hemailtype="CompuServe"; }
|
|
||||||
break;
|
|
||||||
case "aol":
|
|
||||||
if (!$adronetype) { $emailtype="AOL"; }
|
|
||||||
else { $hemailtype="AOL"; }
|
|
||||||
break;
|
|
||||||
case "prodigy":
|
|
||||||
if (!$adronetype) { $emailtype="Prodigy"; }
|
|
||||||
else { $hemailtype="Prodigy"; }
|
|
||||||
break;
|
|
||||||
case "eworld":
|
|
||||||
if (!$adronetype) { $emailtype="eWorld"; }
|
|
||||||
else { $hemailtype="eWorld"; }
|
|
||||||
break;
|
|
||||||
case "applelink":
|
|
||||||
if (!$adronetype) { $emailtype="AppleLink"; }
|
|
||||||
else { $hemailtype="AppleLink"; }
|
|
||||||
break;
|
|
||||||
case "appletalk":
|
|
||||||
if (!$adronetype) { $emailtype="AppleTalk"; }
|
|
||||||
else { $hemailtype="AppleTalk"; }
|
|
||||||
break;
|
|
||||||
case "powershare":
|
|
||||||
if (!$adronetype) { $emailtype="PowerShare"; }
|
|
||||||
else { $hemailtype="PowerShare"; }
|
|
||||||
break;
|
|
||||||
case "ibmmail":
|
|
||||||
if (!$adronetype) { $emailtype="IBMMail"; }
|
|
||||||
else { $hemailtype="IBMMail"; }
|
|
||||||
break;
|
|
||||||
case "attmail":
|
|
||||||
if (!$adronetype) { $emailtype="ATTMail"; }
|
|
||||||
else { $hemailtype="ATTMail"; }
|
|
||||||
break;
|
|
||||||
case "mcimail":
|
|
||||||
if (!$adronetype) { $emailtype="MCIMail"; }
|
|
||||||
else { $hemailtype="MCIMail"; }
|
|
||||||
break;
|
|
||||||
case "x.400":
|
|
||||||
if (!$adronetype) { $emailtype="X.400"; }
|
|
||||||
else { $hemailtype="X.400"; }
|
|
||||||
break;
|
|
||||||
case "tlx":
|
|
||||||
if (!$adronetype) { $emailtype="TLX"; }
|
|
||||||
else { $hemailtype="TLX"; }
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if (!$adronetype) { $emailtype="INTERNET"; }
|
|
||||||
else { $hemailtype="INTERNET"; }
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "title":
|
|
||||||
$title = $v[0];
|
|
||||||
break;
|
|
||||||
case "org":
|
|
||||||
$company = $v[0];
|
|
||||||
if(count($v) > 1) {
|
|
||||||
$notes .= $v[0] . "\n";
|
|
||||||
for($j=1;$j<count($v);$j++) {
|
|
||||||
$notes .= $v[$j] . "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
} // switch
|
|
||||||
} // for
|
|
||||||
$i++;
|
|
||||||
} // All of the values that are getting filled are.
|
|
||||||
|
|
||||||
$fields["tel_prefer"] = substr($tel_prefer,0,-1);
|
|
||||||
$fields["owner"] = $phpgw_info["user"]["account_id"];
|
|
||||||
$fields["n_given"] = addslashes($firstname);
|
|
||||||
$fields["n_family"] = addslashes($lastname);
|
|
||||||
$fields["fn"] = addslashes($firstname . " " . $lastname);
|
|
||||||
$fields["title"] = addslashes($title);
|
|
||||||
$fields["email"] = addslashes($email);
|
|
||||||
$fields["email_type"] = $emailtype;
|
|
||||||
$fields["hemail"] = addslashes($hemail);
|
|
||||||
$fields["hemail_type"] = $hemailtype;
|
|
||||||
$fields["tel_work"] = addslashes($wphone);
|
|
||||||
$fields["tel_home"] = addslashes($hphone);
|
|
||||||
$fields["tel_fax"] = addslashes($fax);
|
|
||||||
$fields["tel_pager"] = addslashes($pager);
|
|
||||||
$fields["tel_cell"] = addslashes($mphone);
|
|
||||||
$fields["tel_msg"] = addslashes($ophone);
|
|
||||||
$fields["tel_car"] = addslashes($carphone);
|
|
||||||
$fields["tel_modem"] = addslashes($modem);
|
|
||||||
$fields["tel_bbs"] = addslashes($bbsphone);
|
|
||||||
$fields["tel_isdn"] = addslashes($isdn);
|
|
||||||
$fields["tel_video"] = addslashes($vidphone);
|
|
||||||
$fields["adr_one_street"] = addslashes($street);
|
|
||||||
$fields["address2"] = addslashes($address2);
|
|
||||||
$fields["adr_one_locality"] = addslashes($city);
|
|
||||||
$fields["adr_one_region"] = addslashes($state);
|
|
||||||
$fields["adr_one_postalcode"] = addslashes($zip);
|
|
||||||
$fields["adr_one_countryname"] = addslashes($country);
|
|
||||||
$fields["adr_one_type"] = substr($adronetype,0,-1);
|
|
||||||
$fields["adr_two_street"] = addslashes($hstreet);
|
|
||||||
$fields["adr_two_locality"] = addslashes($hcity);
|
|
||||||
$fields["adr_two_region"] = addslashes($hstate);
|
|
||||||
$fields["adr_two_postalcode"] = addslashes($hzip);
|
|
||||||
$fields["adr_two_countryname"] = addslashes($hcountry);
|
|
||||||
$fields["adr_two_type"] = substr($adrtwotype,0,-1);
|
|
||||||
$fields["bday"] = addslashes($bday);
|
|
||||||
$fields["url"] = $url;
|
|
||||||
$fields["note"] = addslashes($notes);
|
|
||||||
$fields["org_name"] = addslashes($company);
|
|
||||||
|
|
||||||
/*
|
|
||||||
echo '<br>tel_prefer: '.$fields["tel_prefer"];
|
|
||||||
echo '<br>owner: '.$fields["owner"];
|
|
||||||
echo '<br>firstname: '.$fields["n_given"];
|
|
||||||
echo '<br>lastname: '.$fields["n_family"];
|
|
||||||
echo '<br>full name: '.$fields["fn"];
|
|
||||||
echo '<br>title: '.$fields["title"];
|
|
||||||
echo '<br>email: '.$fields["email"];
|
|
||||||
echo '<br>work#: '.$fields["tel_work"];
|
|
||||||
echo '<br>home#: '.$fields["tel_home"];
|
|
||||||
echo '<br>fax#: '.$fields["tel_fax"];
|
|
||||||
echo '<br>pager#: '.$fields["tel_pager"];
|
|
||||||
echo '<br>cell#: '.$fields["tel_cell"];
|
|
||||||
echo '<br>msg#: '.$fields["tel_msg"];
|
|
||||||
echo '<br>car#: '.$fields["tel_car"];
|
|
||||||
echo '<br>modem# '.$fields["tel_modem"];
|
|
||||||
echo '<br>bbs#: '.$fields["tel_bbs"];
|
|
||||||
echo '<br>isdn#: '.$fields["tel_isdn"];
|
|
||||||
echo '<br>video#: '.$fields["tel_video"];
|
|
||||||
echo '<br>street: '.$fields["adr_one_street"];
|
|
||||||
echo '<br>addr2: '.$fields["address2"];
|
|
||||||
echo '<br>city: '.$fields["adr_one_locality"];
|
|
||||||
echo '<br>state: '.$fields["adr_one_region"];
|
|
||||||
echo '<br>zip: '.$fields["adr_one_postalcode"];
|
|
||||||
echo '<br>adronetype: '.$fields["adr_one_type"];
|
|
||||||
echo '<br>bday: '.$fields["bday"];
|
|
||||||
echo '<br>url: '.$fields["url"];
|
|
||||||
echo '<br>note: '.$fields["note"];
|
|
||||||
echo '<br>company: '.$fields["org_name"];
|
|
||||||
exit;
|
|
||||||
*/
|
|
||||||
$c = CreateObject("phpgwapi.contacts");
|
|
||||||
$c->add($phpgw_info["user"]["account_id"],$fields);
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
Loading…
Reference in New Issue
Block a user