2000-08-18 05:24:22 +02:00
|
|
|
<?php
|
2001-02-10 13:56:49 +01:00
|
|
|
/**************************************************************************\
|
|
|
|
* 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. *
|
|
|
|
\**************************************************************************/
|
2000-08-18 05:24:22 +02:00
|
|
|
|
2001-02-10 13:56:49 +01:00
|
|
|
/* $Id$ */
|
2000-08-18 05:24:22 +02:00
|
|
|
|
2001-03-24 12:11:45 +01:00
|
|
|
$phpgw_info['flags'] = array(
|
|
|
|
'noheader' => True,
|
|
|
|
'nonavbar' => True,
|
|
|
|
'currentapp' => 'addressbook',
|
2001-05-22 00:36:15 +02:00
|
|
|
'enable_contacts_class' => True,
|
|
|
|
'enable_config_class' => True,
|
|
|
|
'enable_country_class' => True
|
2001-03-24 12:11:45 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
include('../header.inc.php');
|
2000-08-18 05:24:22 +02:00
|
|
|
|
2001-03-24 12:11:45 +01:00
|
|
|
$this = CreateObject('phpgwapi.contacts');
|
|
|
|
|
|
|
|
// First, make sure they have permission to this entry
|
2001-03-24 16:21:56 +01:00
|
|
|
$check = addressbook_read_entry($ab_id,array('owner' => 'owner'));
|
2001-03-24 12:11:45 +01:00
|
|
|
|
2001-03-29 17:39:10 +02:00
|
|
|
if ( !$this->check_perms($this->grants[$check[0]['owner']],PHPGW_ACL_EDIT) && ($check[0]['owner'] != $phpgw_info['user']['account_id']) )
|
2001-03-24 12:11:45 +01:00
|
|
|
{
|
2001-03-25 07:41:06 +02:00
|
|
|
Header("Location: "
|
|
|
|
. $phpgw->link('/addressbook/index.php',"cd=16&order=$order&sort=$sort&filter=$filter&start=$start&query=$query&cat_id=$cat_id"));
|
2001-03-24 12:11:45 +01:00
|
|
|
$phpgw->common->phpgw_exit();
|
|
|
|
}
|
2001-01-14 03:43:14 +01:00
|
|
|
|
2001-05-06 18:24:20 +02:00
|
|
|
if (!$ab_id)
|
|
|
|
{
|
2001-03-25 07:41:06 +02:00
|
|
|
Header("Location: "
|
|
|
|
. $phpgw->link('/addressbook/index.php',"cd=16&order=$order&sort=$sort&filter=$filter&start=$start&query=$query&cat_id=$cat_id"));
|
2001-02-10 13:56:49 +01:00
|
|
|
$phpgw->common->phpgw_exit();
|
|
|
|
}
|
2000-08-18 05:24:22 +02:00
|
|
|
|
2001-05-06 18:24:20 +02:00
|
|
|
if (!$submit)
|
2001-03-24 12:11:45 +01:00
|
|
|
{
|
|
|
|
$phpgw->common->phpgw_header();
|
|
|
|
echo parse_navbar();
|
|
|
|
}
|
2001-02-12 14:57:59 +01:00
|
|
|
|
2001-03-16 18:56:18 +01:00
|
|
|
// Read in user custom fields, if any
|
|
|
|
$customfields = array();
|
2001-05-06 18:24:20 +02:00
|
|
|
while (list($col,$descr) = @each($phpgw_info['user']['preferences']['addressbook']))
|
|
|
|
{
|
|
|
|
if ( substr($col,0,6) == 'extra_' )
|
|
|
|
{
|
2001-03-16 18:56:18 +01:00
|
|
|
$field = ereg_replace('extra_','',$col);
|
|
|
|
$field = ereg_replace(' ','_',$field);
|
|
|
|
$customfields[$field] = ucfirst($field);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2001-05-06 18:24:20 +02:00
|
|
|
if (!$submit)
|
|
|
|
{
|
2001-02-10 13:56:49 +01:00
|
|
|
// merge in extra fields
|
2001-02-11 04:23:58 +01:00
|
|
|
$extrafields = array(
|
2001-05-06 18:24:20 +02:00
|
|
|
'ophone' => 'ophone',
|
|
|
|
'address2' => 'address2',
|
|
|
|
'address3' => 'address3'
|
2001-02-11 04:23:58 +01:00
|
|
|
);
|
2001-03-24 12:11:45 +01:00
|
|
|
|
|
|
|
$qfields = $this->stock_contact_fields + $extrafields + $customfields;
|
|
|
|
$fields = addressbook_read_entry($ab_id,$qfields);
|
2001-05-22 00:36:15 +02:00
|
|
|
addressbook_form('edit','edit.php',lang('Edit'),$fields[0],$customfields);
|
2001-05-10 20:09:15 +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("edit" => "edit.tpl"));
|
|
|
|
|
|
|
|
$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);
|
2001-05-21 22:32:17 +02:00
|
|
|
$t->set_var('tid',$tid);
|
2001-05-10 20:09:15 +02:00
|
|
|
$t->set_var('lang_ok',lang('ok'));
|
|
|
|
$t->set_var('lang_clear',lang('clear'));
|
|
|
|
$t->set_var('lang_cancel',lang('cancel'));
|
|
|
|
$t->set_var('lang_submit',lang('submit'));
|
|
|
|
$t->set_var('cancel_link','<form method="POST" action="' . $phpgw->link("/addressbook/index.php") . '">');
|
|
|
|
|
|
|
|
if (($this->grants[$check[0]['owner']] & PHPGW_ACL_DELETE) || $check[0]['owner'] == $phpgw_info['user']['account_id'])
|
|
|
|
{
|
|
|
|
$t->set_var('delete_link','<form method="POST" action="'.$phpgw->link("/addressbook/delete.php") . '">');
|
|
|
|
$t->set_var('delete_button','<input type="submit" name="delete" value="' . lang('Delete') . '">');
|
|
|
|
}
|
|
|
|
|
|
|
|
$t->pfp('out','edit');
|
|
|
|
$phpgw->common->phpgw_footer();
|
2001-05-06 18:24:20 +02:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if ($url == "http://")
|
|
|
|
{
|
2001-02-14 01:56:07 +01:00
|
|
|
$url = "";
|
|
|
|
}
|
2001-05-06 18:24:20 +02:00
|
|
|
if (!$bday_month && !$bday_day && !$bday_year)
|
|
|
|
{
|
2001-02-14 01:56:07 +01:00
|
|
|
$bday = "";
|
2001-05-06 18:24:20 +02:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2001-04-08 09:33:09 +02:00
|
|
|
if (strlen ($bday_day) == 1)
|
|
|
|
{
|
|
|
|
$bday_day = "0".$bday_day;
|
|
|
|
}
|
2001-02-14 01:56:07 +01:00
|
|
|
$bday = "$bday_month/$bday_day/$bday_year";
|
2001-02-10 13:56:49 +01:00
|
|
|
}
|
2001-02-14 01:56:07 +01:00
|
|
|
|
2001-05-06 18:24:20 +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;
|
|
|
|
if ($prefix) { $pspc = ' '; }
|
|
|
|
if ($middle) { $mspc = ' '; } else { $nspc = ' '; }
|
|
|
|
if ($suffix) { $sspc = ' '; }
|
|
|
|
$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['tel_prefer'] = $tel_prefer;
|
|
|
|
|
|
|
|
$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;
|
2001-03-16 02:31:25 +01:00
|
|
|
|
|
|
|
reset($this->adr_types);
|
|
|
|
$typed = '';
|
2001-05-06 18:24:20 +02:00
|
|
|
while (list($type,$val) = each($this->adr_types))
|
|
|
|
{
|
2001-03-16 02:31:25 +01:00
|
|
|
$ftype = 'one_'.$type;
|
|
|
|
eval("if (\$\$ftype=='on'\) { \$typed \.= \$type\.';'; }");
|
|
|
|
}
|
2001-05-06 18:24:20 +02:00
|
|
|
$fields['adr_one_type'] = substr($typed,0,-1);
|
2001-03-16 02:31:25 +01:00
|
|
|
|
2001-05-06 18:24:20 +02:00
|
|
|
$fields['address2'] = $address2;
|
|
|
|
$fields['address3'] = $address3;
|
2001-03-16 02:31:25 +01:00
|
|
|
|
2001-05-06 18:24:20 +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;
|
2001-03-16 02:31:25 +01:00
|
|
|
|
|
|
|
reset($this->adr_types);
|
|
|
|
$typed = '';
|
2001-05-06 18:24:20 +02:00
|
|
|
while (list($type,$val) = each($this->adr_types))
|
|
|
|
{
|
2001-03-16 02:31:25 +01:00
|
|
|
$ftype = 'two_'.$type;
|
|
|
|
eval("if \(\$\$ftype=='on'\) { \$typed \.= \$type\.';'; }");
|
|
|
|
}
|
2001-05-01 11:32:52 +02:00
|
|
|
$fields["adr_two_type"] = substr($typed,0,-1);
|
2001-03-16 02:31:25 +01:00
|
|
|
|
2001-03-16 18:56:18 +01:00
|
|
|
reset($customfields);
|
2001-05-06 18:24:20 +02:00
|
|
|
while (list($name,$val) = each($customfields))
|
|
|
|
{
|
2001-03-16 18:56:18 +01:00
|
|
|
$cust = '';
|
|
|
|
eval("if (\$name\) { \$cust \.= \$\$name; }");
|
|
|
|
if ($cust) { $fields[$name] = $cust; }
|
|
|
|
}
|
2001-03-20 23:53:06 +01:00
|
|
|
|
2001-05-06 18:24:20 +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 || $access == 'private')
|
|
|
|
{
|
|
|
|
$fields['access'] = 'private';
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$fields['access'] = 'public';
|
2001-03-24 16:21:56 +01:00
|
|
|
}
|
|
|
|
|
2001-05-23 22:18:57 +02:00
|
|
|
$fields['cat_id'] = is_array($cat_id) ? implode(',',$cat_id) : $cat_id;
|
2001-03-25 07:41:06 +02:00
|
|
|
|
2001-03-30 05:09:52 +02:00
|
|
|
if (($this->grants[$check[0]['owner']] & PHPGW_ACL_EDIT) && $check[0]['owner'] != $phpgw_info['user']['account_id'])
|
|
|
|
{
|
|
|
|
$userid = $check[0]['owner'];
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2001-05-06 18:24:20 +02:00
|
|
|
$userid = $phpgw_info['user']['account_id'];
|
2001-03-30 05:09:52 +02:00
|
|
|
}
|
2001-03-16 02:31:25 +01:00
|
|
|
|
2001-05-21 22:32:17 +02:00
|
|
|
addressbook_update_entry($ab_id,$userid,$fields,$fields['access'],$fields['cat_id'],$tid);
|
2001-04-14 16:58:29 +02:00
|
|
|
$referer = urlencode($referer);
|
2001-03-25 07:41:06 +02:00
|
|
|
Header("Location: "
|
2001-05-06 18:24:20 +02:00
|
|
|
. $phpgw->link('/addressbook/view.php',"ab_id=$ab_id&order=$order&sort=$sort&filter=$filter&start=$start&query=$query&cat_id=$cat_id&referer=$referer"));
|
2001-02-14 01:56:07 +01:00
|
|
|
$phpgw->common->phpgw_exit();
|
2001-02-10 13:56:49 +01:00
|
|
|
}
|
2000-09-28 02:19:04 +02:00
|
|
|
?>
|