egroupware/addressbook/add.php

224 lines
6.6 KiB
PHP
Raw Normal View History

2000-08-18 05:24:22 +02:00
<?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$ */
2000-08-18 05:24:22 +02:00
2001-05-10 20:09:15 +02:00
if ($submit || $AddVcard)
{
$phpgw_info['flags'] = array(
'noheader' => True,
'nonavbar' => True
);
}
2001-03-27 01:19:36 +02:00
2001-05-10 20:09:15 +02:00
$phpgw_info['flags']['currentapp'] = 'addressbook';
$phpgw_info['flags']['enable_contacts_class'] = True;
include('../header.inc.php');
2001-03-27 01:19:36 +02:00
2001-05-11 16:01:06 +02:00
$t = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
2001-05-10 20:09:15 +02:00
$t->set_file(array('add' => 'add.tpl'));
2001-03-27 01:19:36 +02:00
2001-05-10 20:09:15 +02:00
$this = CreateObject('phpgwapi.contacts');
// Read in user custom fields, if any
$phpgw->preferences->read_repository();
$customfields = array();
2001-05-10 20:09:15 +02:00
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);
}
}
2001-05-10 20:09:15 +02:00
if ($AddVcard)
{
2001-05-21 09:42:25 +02:00
Header('Location: ' . $phpgw->link('/addressbook/vcardin.php'));
2001-05-10 20:09:15 +02:00
}
else if ($add_email)
{
2001-05-21 09:42:25 +02:00
$named = explode(' ', $name);
for ($i=count($named);$i>=0;$i--) { $names[$i] = $named[$i]; }
if ($names[2])
{
2001-05-10 20:09:15 +02:00
$fields['n_given'] = $names[0];
$fields['n_middle'] = $names[1];
$fields['n_family'] = $names[2];
}
else
{
2001-05-10 20:09:15 +02:00
$fields['n_given'] = $names[0];
$fields['n_family'] = $names[1];
}
2001-05-10 20:09:15 +02:00
$fields['email'] = $add_email;
addressbook_form('','add.php','Add',$fields,'',$cat_id);
}
else if (!$submit && !$add_email)
{
// Default
addressbook_form("","add.php","Add","",$customfields,$cat_id);
2001-05-10 20:09:15 +02:00
}
elseif ($submit && $fields)
{
// This came from the view form, Copy entry
$extrafields = array(
2001-05-10 20:09:15 +02:00
'ophone' => 'ophone',
'address2' => 'address2',
'address3' => 'address3'
);
$qfields = $this->stock_contact_fields + $extrafields + $customfields;
$addnew = unserialize(rawurldecode($fields));
$addnew['note'] .= "\nCopied from ".$phpgw->accounts->id2name($addnew['owner']).", record #".$addnew['id'].".";
2001-05-21 09:42:25 +02:00
$addnew['owner'] = $phpgw_info['user']['account_id'];
$addnew['id'] = '';
2001-03-27 01:19:36 +02:00
2001-03-27 01:41:34 +02:00
if ($addnew['tid']) { addressbook_add_entry($addnew['owner'],$addnew,'','',$addnew['tid']); }
2001-03-27 01:19:36 +02:00
else { addressbook_add_entry($addnew['owner'],$addnew); }
$fields = addressbook_read_last_entry($qfields);
$newid = $fields[0]['id'];
2001-03-25 07:41:06 +02:00
Header("Location: "
2001-05-22 00:29:05 +02:00
. $phpgw->link('/addressbook/edit.php',"ab_id=$newid&order=$order&sort=$sort&filter=$filter&start=$start&query=$query&cat_id=$cat_id"));
2001-05-10 20:09:15 +02:00
}
else
{
2001-05-21 09:42:25 +02:00
if (!$bday_month && !$bday_day && !$bday_year)
2001-05-10 20:09:15 +02:00
{
2001-05-21 09:42:25 +02:00
$bday = '';
2001-05-10 20:09:15 +02:00
}
else
{
if (strlen ($bday_day) == 1)
{
2001-05-21 09:42:25 +02:00
$bday_day = '0' . $bday_day;
}
$bday = "$bday_month/$bday_day/$bday_year";
}
2001-05-10 20:09:15 +02:00
if ($url == "http://")
{
$url = "";
}
2000-08-18 05:24:22 +02:00
2001-05-10 20:09:15 +02:00
$fields['org_name'] = $company;
$fields['org_unit'] = $department;
$fields['n_given'] = $firstname;
$fields['n_family'] = $lastname;
$fields['n_middle'] = $middle;
$fields['n_prefix'] = $prefix;
$fields['n_suffix'] = $suffix;
2001-05-21 09:42:25 +02:00
if ($prefix) { $pspc = ' '; }
if ($middle) { $mspc = ' '; } else { $nspc = ' '; }
if ($suffix) { $sspc = ' '; }
2001-05-10 20:09:15 +02:00
$fields['fn'] = $prefix.$pspc.$firstname.$nspc.$mspc.$middle.$mspc.$lastname.$sspc.$suffix;
$fields['email'] = $email;
$fields['email_type'] = $email_type;
$fields['email_home'] = $hemail;
$fields['email_home_type'] = $hemail_type;
$fields['title'] = $title;
$fields['tel_work'] = $wphone;
$fields['tel_home'] = $hphone;
$fields['tel_fax'] = $fax;
$fields['tel_pager'] = $pager;
$fields['tel_cell'] = $mphone;
$fields['tel_msg'] = $msgphone;
$fields['tel_car'] = $carphone;
$fields['tel_video'] = $vidphone;
$fields['tel_isdn'] = $isdnphone;
$fields['adr_one_street'] = $bstreet;
$fields['adr_one_locality'] = $bcity;
$fields['adr_one_region'] = $bstate;
$fields['adr_one_postalcode'] = $bzip;
$fields['adr_one_countryname'] = $bcountry;
reset($this->adr_types);
$typed = '';
2001-05-10 20:09:15 +02:00
while (list($type,$val) = each($this->adr_types))
{
$ftype = 'one_'.$type;
eval("if (\$\$ftype=='on'\) { \$typed \.= \$type\.';'; }");
}
2001-05-10 20:09:15 +02:00
$fields['adr_one_type'] = substr($typed,0,-1);
2001-05-10 20:09:15 +02:00
$fields['address2'] = $address2;
$fields['address3'] = $address3;
2001-05-10 20:09:15 +02:00
$fields['adr_two_street'] = $hstreet;
$fields['adr_two_locality'] = $hcity;
$fields['adr_two_region'] = $hstate;
$fields['adr_two_postalcode'] = $hzip;
$fields['adr_two_countryname'] = $hcountry;
reset($this->adr_types);
$typed = '';
2001-05-10 20:09:15 +02:00
while (list($type,$val) = each($this->adr_types))
{
$ftype = 'two_'.$type;
eval("if \(\$\$ftype=='on'\) { \$typed \.= \$type\.';'; }");
}
2001-05-10 20:09:15 +02:00
$fields['adr_two_type'] = substr($typed,0,-1);
reset($customfields);
2001-05-10 20:09:15 +02:00
while (list($name,$val) = each($customfields))
{
$cust = '';
eval("if (\$name\) { \$cust \.= \$\$name; }");
if ($cust) { $fields[$name] = $cust; }
}
2001-05-10 20:09:15 +02:00
$fields['ophone'] = $ophone;
$fields['tz'] = $timezone;
$fields['bday'] = $bday;
$fields['url'] = $url;
$fields['pubkey'] = $pubkey;
$fields['note'] = $notes;
$fields['label'] = $label;
if ($access == True)
{
$fields['access'] = 'private';
}
else
{
$fields['access'] = 'public';
}
2001-05-01 11:32:52 +02:00
$fields["cat_id"] = $cat_id;
2001-03-25 07:41:06 +02:00
2001-05-10 20:09:15 +02:00
addressbook_add_entry($phpgw_info['user']['account_id'],$fields,$fields['access'],$fields['cat_id']);
$ab_id = addressbook_get_lastid();
$referer = urlencode($referer);
2001-03-25 07:41:06 +02:00
Header("Location: "
. $phpgw->link("/addressbook/view.php","ab_id=$ab_id&order=$order&sort=$sort&filter=$filter&start=$start&cat_id=$cat_id&referer=$referer"));
$phpgw->common->phpgw_exit();
}
2000-11-03 21:07:57 +01:00
2001-05-10 20:09:15 +02:00
$t->set_var('ab_id',$ab_id);
$t->set_var('sort',$sort);
$t->set_var('order',$order);
$t->set_var('filter',$filter);
$t->set_var('query',$query);
$t->set_var('start',$start);
$t->set_var('cat_id',$cat_id);
$t->set_var('lang_ok',lang('ok'));
$t->set_var('lang_clear',lang('clear'));
$t->set_var('lang_cancel',lang('cancel'));
$t->set_var('cancel_url',$phpgw->link('/addressbook/index.php'));
$t->parse('out','add');
$t->pparse('out','add');
2001-03-19 19:02:06 +01:00
$phpgw->common->phpgw_footer();
?>