and * * Miles Lott * * -------------------------------------------- * * 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 uiaddressbook { var $contacts; var $bo; var $cat; var $company; var $prefs; var $debug = False; var $start; var $limit; var $query; var $sort; var $order; var $filter; var $cat_id; var $public_functions = array( 'index' => True, 'view' => True, 'add' => True, 'add_email' => True, 'copy' => True, 'edit' => True, 'delete' => True, 'preferences' => True ); var $extrafields = array( 'ophone' => 'ophone', 'address2' => 'address2', 'address3' => 'address3' ); var $contact_types = array( 'n' => 'People', 'c' => 'Companies' ); var $contact_type = array( 'n' => 'Person', 'c' => 'Company' ); function uiaddressbook() { $GLOBALS['egw']->country = CreateObject('phpgwapi.country'); $GLOBALS['egw']->browser = CreateObject('phpgwapi.browser'); $GLOBALS['egw']->nextmatchs = CreateObject('phpgwapi.nextmatchs'); $this->fields = CreateObject('addressbook.bofields'); $this->bo = CreateObject('addressbook.boaddressbook',True); $this->cat = CreateObject('phpgwapi.categories'); // $this->company = CreateObject('phpgwapi.categories','addressbook_company'); $this->prefs = $GLOBALS['egw_info']['user']['preferences']['addressbook']; $this->_set_sessiondata(); } function _set_sessiondata() { $this->start = $this->bo->start; $this->limit = $this->bo->limit; $this->query = $this->bo->query; $this->cquery = $this->bo->cquery; $this->sort = $this->bo->sort; $this->order = $this->bo->order; $this->filter = $this->bo->filter; $this->cat_id = $this->bo->cat_id; $this->typeid = $this->bo->typeid; if($this->debug) { $this->_debug_sqsof(); } } function _debug_sqsof() { $data = array( 'start' => $this->start, 'limit' => $this->limit, 'query' => $this->query, 'cquery' => $this->cquery, 'sort' => $this->sort, 'order' => $this->order, 'filter' => $this->filter, 'cat_id' => $this->cat_id, 'typeid' => $this->typeid ); echo '
UI:'; _debug_array($data); } /* Called only by index(), just prior to page footer. */ function save_sessiondata() { $data = array( 'start' => $this->start, 'limit' => $this->limit, 'query' => $this->query, 'cquery' => $this->cquery, 'sort' => $this->sort, 'order' => $this->order, 'filter' => $this->filter, 'cat_id' => $this->cat_id, 'typeid' => $this->typeid ); $this->bo->save_sessiondata($data); } function formatted_list($name,$list,$id='',$default=False,$java=False) { if($java) { $jselect = ' onChange="this.form.submit();"'; } $select = "\n" .''."\n"; $select .= '' . "\n"; return $select; } /* 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" .''."\n"; return $cats_link; } /* this cleans up the fieldnames for display */ function display_name($column) { $abc = array( 'fn' => 'full name', 'sound' => 'Sound', 'org_name' => 'company name', 'org_unit' => 'department', 'title' => 'title', 'n_prefix' => 'prefix', 'n_given' => 'first name', 'n_middle' => 'middle name', 'n_family' => 'last name', 'n_suffix' => 'suffix', 'label' => 'label', 'adr_one_street' => 'business street', 'adr_one_locality' => 'business city', 'adr_one_region' => 'business state', 'adr_one_postalcode' => 'business zip code', 'adr_one_countryname' => 'business country', 'adr_one_type' => 'business address type', 'adr_two_street' => 'home street', 'adr_two_locality' => 'home city', 'adr_two_region' => 'home state', 'adr_two_postalcode' => 'home zip code', 'adr_two_countryname' => 'home country', 'adr_two_type' => 'home address type', 'tz' => 'time zone', 'geo' => 'geo', 'tel_work' => 'business phone', 'tel_home' => 'home phone', 'tel_voice' => 'voice phone', 'tel_msg' => 'message phone', 'tel_fax' => 'fax', 'tel_pager' => 'pager', 'tel_cell' => 'mobile phone', 'tel_bbs' => 'bbs phone', 'tel_modem' => 'modem phone', 'tel_isdn' => 'isdn phone', 'tel_car' => 'car phone', 'tel_video' => 'video phone', 'tel_prefer' => 'preferred phone', 'email' => 'business email', 'email_type' => 'business email type', 'email_home' => 'home email', 'email_home_type' => 'home email type', 'address2' => 'address line 2', 'address3' => 'address line 3', 'ophone' => 'Other Phone', 'bday' => 'birthday', 'url' => 'url', 'pubkey' => 'public key', 'note' => 'notes' ); if($abc[$column]) { return lang($abc[$column]); } return; } function index() { $GLOBALS['egw']->common->phpgw_header(); echo parse_navbar(); $GLOBALS['egw']->template->set_file(array('addressbook_list_t' => 'index.tpl')); $GLOBALS['egw']->template->set_block('addressbook_list_t','addressbook_header','addressbook_header'); $GLOBALS['egw']->template->set_block('addressbook_list_t','column','column'); $GLOBALS['egw']->template->set_block('addressbook_list_t','row','row'); $GLOBALS['egw']->template->set_block('addressbook_list_t','delete_block','delete_block'); $GLOBALS['egw']->template->set_block('addressbook_list_t','addressbook_footer','addressbook_footer'); $GLOBALS['egw']->template->set_block('addressbook_list_t','addressbook_alpha','addressbook_alpha'); /* Setup query for 1st char of fullname, company, lastname using user lang */ $chars = lang('alphabet'); if($chars == 'alphabet*') { $chars = 'a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z'; } $aar = explode(',', $chars); unset($chars); $aar[] = 'all'; foreach($aar as $char) { $GLOBALS['egw']->template->set_var('charclass',$this->cquery == $char || $char == 'all' && !$this->cquery ? 'letter_box_active' : 'letter_box'); if($char == 'all') { $GLOBALS['egw']->template->set_var('charlink', $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index&cquery=') ); } else { $GLOBALS['egw']->template->set_var('charlink', $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index&cquery=' . $char) ); } $GLOBALS['egw']->template->set_var('char',$char != 'all' ? strtoupper($char) : lang('all')); $GLOBALS['egw']->template->fp('alphalinks','addressbook_alpha',True); } unset($aar); unset($char); $custom = $this->fields->_read(); $customfields = array(); // while(list($x,$y) = @each($custom)) foreach($custom as $x => $y) { $customfields[$y['name']] = $y['name']; $namedfields[$y['name']] = $y['title']; } if($this->cat_id == -1) { $this->cat_id = $this->prefs['default_category']; } if($this->prefs['autosave_category']) { $GLOBALS['egw']->preferences->read_repository(); $GLOBALS['egw']->preferences->delete('addressbook','default_category'); $GLOBALS['egw']->preferences->add('addressbook','default_category',$this->cat_id); $GLOBALS['egw']->preferences->save_repository(); } /* global here so nextmatchs accepts our setting of $query and $filter - may be changed again below */ $GLOBALS['query'] = $this->query; $GLOBALS['filter'] = $this->filter; /* $qfields = $contacts->stock_contact_fields + $extrafields + $customfields; */ /* create column list and the top row of the table based on user prefs */ foreach($this->bo->stock_contact_fields as $column => $db_name) { $test = strtolower($column); if(isset($this->prefs[$test]) && $this->prefs[$test]) { $showcol = $this->display_name($column); $cols .= ' ' . "\n"; $cols .= ' '; $cols .= $GLOBALS['egw']->nextmatchs->show_sort_order($this->sort, $column,$this->order,'/index.php',$showcol,'&menuaction=addressbook.uiaddressbook.index' ); $cols .= "\n "; $cols .= "\n"; /* To be used when displaying the rows */ $columns_to_display[$column] = True; } } /* Setup the columns for non-standard fields, since we don't allow sorting */ $nonstd = $this->extrafields + $customfields; foreach($nonstd as $column) { if(isset($this->prefs[$column]) && $this->prefs[$column]) { $showcol = $this->display_name($column); /* This must be a custom field */ if(!$showcol) { $showcol = $namedfields[$column]; } $cols .= ' ' . "\n"; $cols .= ' '; $cols .= $showcol; $cols .= "\n "; $cols .= "\n"; /* To be used when displaying the rows */ $columns_to_display[$column] = True; } } /* Check if prefs were set, if not, create some defaults */ if(!$columns_to_display) { /* No prefs,. so cols above may have been set to '' or a bunch of */ $cols=''; $columns_to_display = array( 'fn' => True, 'org_name' => True, 'adr_one_locality' => True, 'tel_work' => True, 'tel_cell' => True, 'email' => True ); foreach($columns_to_display as $col => $nul) { $showcol = $this->display_name($col); $cols .= ' ' . "\n"; $cols .= ' '; $cols .= $GLOBALS['egw']->nextmatchs->show_sort_order( $this->sort,$col,$this->order, "/index.php",$showcol, '&menuaction=addressbook.uiaddressbook.index&cat_id=' . $this->cat_id . '&cquery=' . $this->cquery ); $cols .= "\n "; $cols .= "\n"; $prefs[$col] = 'on'; } $this->bo->save_preferences($prefs,'',$columns_to_display,''); } if(!$this->start) { $this->start = 0; } if($GLOBALS['egw_info']['user']['preferences']['common']['maxmatchs'] && $GLOBALS['egw_info']['user']['preferences']['common']['maxmatchs'] > 0) { $this->limit = $GLOBALS['egw_info']['user']['preferences']['common']['maxmatchs']; } else { $this->limit = 15; } /*global $filter; */ if(empty($this->filter) || !isset($this->filter)) { if($this->prefs['default_filter']) { $this->filter = $this->prefs['default_filter']; $this->query = ''; } else { $this->filter = 'none'; } } /* Set qfilter to display entries where tid=n (normal contact entry), else they may be accounts, etc. */ $qfilter = 'tid=' . (string)$this->typeid; switch($this->filter) { case 'blank': $nosearch = True; break; case 'none': break; case 'private': $qfilter .= ',access=private'; /* fall through */ case 'yours': $qfilter .= ',owner=' . $GLOBALS['egw_info']['user']['account_id']; break; default: $qfilter .= ',owner=' . $this->filter; } if($this->cat_id) { $qfilter .= ',cat_id='.$this->cat_id; } if(!$userid) { $userid = $GLOBALS['egw_info']['user']['account_id']; } if($nosearch && !$this->query) { $entries = array(); $total_records = 0; } else { /* read the entry list */ $entries = $this->bo->read_entries(array( 'start' => $this->start, 'limit' => $this->limit, 'fields' => $columns_to_display, 'filter' => $qfilter, 'query' => $this->query, 'cquery' => $this->cquery, 'sort' => $this->sort, 'order' => $this->order )); $total_records = $this->bo->total; } /* global here so nextmatchs accepts our setting of $query and $filter */ $GLOBALS['query'] = $this->query; $GLOBALS['filter'] = $this->filter; $search_filter = $GLOBALS['egw']->nextmatchs->show_tpl('/index.php', $this->start, $total_records, '&menuaction=addressbook.uiaddressbook.index&fcat_id=' . $this->cat_id . '&cquery=' . $this->cquery,'95%', $GLOBALS['egw_info']['theme']['th_bg'],1,1,1,array('filter' => $this->filter,'yours' => 1), $this->cat_id ); $query = $filter = ''; $lang_showing = $GLOBALS['egw']->nextmatchs->show_hits($total_records,$this->start); /* set basic vars and parse the header */ $GLOBALS['egw']->template->set_var('font',$GLOBALS['egw_info']['theme']['font']); $GLOBALS['egw']->template->set_var('lang_actions',lang('Actions')); $GLOBALS['egw']->template->set_var('check',$GLOBALS['egw']->common->image('phpgwapi','transparent')); $GLOBALS['egw']->template->set_var('select_all',''); if(count($entries)) { $GLOBALS['egw']->template->set_var('check', $GLOBALS['egw']->common->image('addressbook','check')); $GLOBALS['egw']->template->set_var('select_all',lang('Select all')); } $GLOBALS['egw']->template->set_var('searchreturn',$noprefs . ' ' . $searchreturn); $GLOBALS['egw']->template->set_var('lang_showing',$lang_showing); $GLOBALS['egw']->template->set_var('search_filter',$search_filter); /* $GLOBALS['egw']->template->set_var('lang_show',lang('Show') . ':'); $GLOBALS['egw']->template->set_var('contact_type_list',$this->formatted_list('typeid',$this->contact_types,$this->typeid,False,True)); $GLOBALS['egw']->template->set_var('self_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index')); */ $GLOBALS['egw']->template->set_var('lang_show',''); $GLOBALS['egw']->template->set_var('contact_type_list',''); $GLOBALS['egw']->template->set_var('self_url',''); $GLOBALS['egw']->template->set_var('cats',lang('Category')); $GLOBALS['egw']->template->set_var('cats_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index')); /* $GLOBALS['egw']->template->set_var('cats_link',$this->cat_option($this->cat_id)); */ $GLOBALS['egw']->template->set_var('lang_cats',lang('Select')); // $GLOBALS['egw']->template->set_var('lang_addressbook',lang('Address book')); $GLOBALS['egw']->template->set_var('th_bg',$GLOBALS['egw_info']['theme']['th_bg']); $GLOBALS['egw']->template->set_var('th_font',$GLOBALS['egw_info']['theme']['font']); $GLOBALS['egw']->template->set_var('th_text',$GLOBALS['egw_info']['theme']['th_text']); $GLOBALS['egw']->template->set_var('action_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.delete')); $GLOBALS['egw']->template->set_var('lang_add',lang('Add')); $add_link = $GLOBALS['egw']->link('/index.php?menuaction=addressbook.uicontacts.edit'); $GLOBALS['egw']->template->set_var('add_url',$add_link); $GLOBALS['egw']->template->set_var('add_onclick',"window.open('$add_link','_blank','dependent=yes,width=850,height=440,location=no,menubar=no,toolbar=no,scrollbars=yes,status=yes'); return false;"); $GLOBALS['egw']->template->set_var('lang_addvcard',lang('AddVCard')); $GLOBALS['egw']->template->set_var('vcard_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uivcard.in')); $GLOBALS['egw']->template->set_var('lang_import',lang('Import Contacts')); $GLOBALS['egw']->template->set_var('import_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.import')); $GLOBALS['egw']->template->set_var('lang_import_alt',lang('Alt. CSV Import')); $GLOBALS['egw']->template->set_var('import_alt_url',$GLOBALS['egw']->link('/addressbook/csv_import.php')); $GLOBALS['egw']->template->set_var('lang_export',lang('Export Contacts')); $GLOBALS['egw']->template->set_var('export_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiXport.export')); $GLOBALS['egw']->template->set_var('lang_delete',lang('Delete')); $GLOBALS['egw']->template->set_var('column_count',count($columns_to_display)); $GLOBALS['egw']->template->set_var('lang_sure',lang('Are you sure you want to delete these entries ?')); $GLOBALS['egw']->template->set_var('start',$this->start); $GLOBALS['egw']->template->set_var('sort',$this->sort); $GLOBALS['egw']->template->set_var('order',$this->order); $GLOBALS['egw']->template->set_var('filter',$this->filter); $GLOBALS['egw']->template->set_var('query',$this->query); $GLOBALS['egw']->template->set_var('cat_id',$this->cat_id); $GLOBALS['egw']->template->set_var('qfield',$qfield); $GLOBALS['egw']->template->set_var('cols',$cols); $GLOBALS['egw']->template->pparse('out','addressbook_header'); /* Show the entries */ /* each entry */ for($i=0;$itemplate->set_var('columns',''); $tr_color = $GLOBALS['egw']->nextmatchs->alternate_row_color($tr_color); $GLOBALS['egw']->template->set_var('row_tr_color',$tr_color); $myid = $entries[$i]['id']; $myowner = $entries[$i]['owner']; /* each entry column */ foreach($columns_to_display as $column => $nul) { $ref = $data=''; $coldata = $entries[$i][$column]; /* echo '
coldata="' . $coldata . '"'; */ /* Some fields require special formatting. */ if($column == 'url') { if(!empty($coldata) && (substr($coldata,0,7) != 'http://')) { $coldata = 'http://' . $coldata; } $ref=''; $data=$coldata.''; } elseif(($column == 'email' || $column == 'email_home') && strstr($coldata,'@')) { $link = $this->email2link($coldata); if (is_array($link)) $link = $GLOBALS['egw']->link('/index.php',$link); $ref = ''; $data = $coldata.''; } else /* But these do not */ { $ref = ''; $data = $coldata; } $GLOBALS['egw']->template->set_var('col_data',$ref.$data); $GLOBALS['egw']->template->parse('columns','column',True); } $actions = ' '; if($this->bo->check_perms($entries[$i],PHPGW_ACL_EDIT)) { $actions .= ''. ''; } if($this->bo->check_perms($entries[$i],PHPGW_ACL_DELETE)) { $actions .= ''; } $actions .= ''; $GLOBALS['egw']->template->set_var('actions',$actions); $GLOBALS['egw']->template->parse('rows','row',True); $GLOBALS['egw']->template->pparse('out','row'); reset($columns_to_display); } $GLOBALS['egw']->template->set_var('delete_button',''); if(count($entries)) { $GLOBALS['egw']->template->fp('delete_button','delete_block'); } $GLOBALS['egw']->template->pfp('out','addressbook_footer'); $this->save_sessiondata(); /* $GLOBALS['egw']->common->phpgw_footer(); */ } /** * convert email-address in compose link * * @param string $email email-addresse * @return array/string array with get-params or mailto:$email, or '' or no mail addresse */ function email2link($email) { if (!strstr($email,'@')) return ''; if($GLOBALS['egw_info']['user']['apps']['felamimail']) { return array( 'menuaction' => 'felamimail.uicompose.compose', 'send_to' => base64_encode($email) ); } if($GLOBALS['egw_info']['user']['apps']['email']) { return array( 'menuaction' => 'email.uicompose.compose', 'to' => $email, ); } return 'mailto:' . $email; } function add_email() { $name = $_POST['name'] ? $_POST['name'] : $_GET['name']; $referer = $_POST['referer'] ? $_POST['referer'] : $_GET['referer']; $add_email = $_POST['add_email'] ? $_POST['add_email'] : $_GET['add_email']; $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]; } $GLOBALS['egw']->redirect_link('/index.php', array( 'menuaction' => 'addressbook.uicontacts.edit', 'presets[n_given]' => $fields['n_given'] ? $fields['n_given'] : ' ', 'presets[n_middle]' => $fields['n_middle'] ? $fields['n_middle'] : '', 'presets[n_family]' => $fields['n_family'] ? $fields['n_family'] : ' ', 'presets[email]' => $add_email, )); } function copy() { $custom = $this->fields->_read(); $customfields = array(); // while(list($x,$y) = @each($custom)) foreach($custom as $x => $y) { $customfields[$y['name']] = $y['title']; } list($addnew) = $this->bo->read_entry(array( 'id' => (int) $_GET['ab_id'], 'fields' => $this->bo->stock_contact_fields + $this->extrafields + $customfields )); $addnew['note'] .= "\n".lang("Copied by %1, from record #%2.",$GLOBALS['egw']->accounts->id2name($addnew['owner']),$addnew['id']); $addnew['owner'] = $GLOBALS['egw_info']['user']['account_id']; unset($addnew['rights']); unset($addnew['id']); $ab_id = $this->bo->add_entry($addnew); $GLOBALS['egw']->redirect_link('/index.php','menuaction=addressbook.uiaddressbook.edit&ab_id=' . $ab_id); } function add() { if($_POST['save'] || $_POST['apply']) { $fields = $this->get_form(); $referer = urlencode($fields['referer']); unset($fields['referer']); $fields['owner'] = $GLOBALS['egw_info']['user']['account_id']; $ab_id = $this->bo->add_entry($fields); if(@is_array($ab_id) || !$ab_id) { /* Errors encountered during validation */ $errors = $ab_id; } // $ab_id = $this->bo->get_lastid(); if(!$errors && $_POST['save']) { Header('Location: ' . $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.view&ab_id=' . $ab_id . '&referer=' . $referer)); $GLOBALS['egw']->common->phpgw_exit(); } } $GLOBALS['egw']->template->set_file(array('add' => 'add.tpl')); $GLOBALS['egw_info']['flags']['app_header'] = lang('Addressbook').' - '.lang('Add'); $GLOBALS['egw']->common->phpgw_header(); echo parse_navbar(); $custom = $this->fields->_read(); foreach($custom as $x => $y) { $customfields[$y['name']] = $y['title']; } $this->addressbook_form('','menuaction=addressbook.uiaddressbook.add','Add','',$customfields,$this->cat_id); $GLOBALS['egw']->template->set_var('errors',''); if(@is_array($errors)) { $GLOBALS['egw']->template->set_var('errors',implode(',',$errors)); } $GLOBALS['egw']->template->set_var('lang_save',lang('Save')); $GLOBALS['egw']->template->set_var('lang_apply',lang('Apply')); $GLOBALS['egw']->template->set_var('lang_cancel',lang('Cancel')); $GLOBALS['egw']->template->set_var('cancel_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index')); $GLOBALS['egw']->template->parse('out','add'); $GLOBALS['egw']->template->pparse('out','add'); } function edit() { if($_POST['save'] || $_POST['apply']) { $_fields = $this->get_form(); /* _debug_array($_fields);exit; */ $check = $this->bo->read_entry(array('id' => $_fields['ab_id'], 'fields' => array('owner' => 'owner','tid' => 'tid'))); if($this->bo->check_perms($check[0],PHPGW_ACL_EDIT)) { $userid = $check[0]['owner']; } else { $userid = $GLOBALS['egw_info']['user']['account_id']; } $_fields['owner'] = $userid; $referer = urlencode($_fields['referer']); unset($_fields['referer']); $this->bo->update_entry($_fields); if($_POST['save']) { Header('Location: ' . $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.view&ab_id=' . $_fields['ab_id'] . '&referer=' . $referer) ); $GLOBALS['egw']->common->phpgw_exit(); } } /* First, make sure they have permission to this entry */ $check = $this->bo->read_entry(array('id' => (int) $_GET['ab_id'], 'fields' => array('owner' => 'owner','tid' => 'tid'))); if(!$this->bo->check_perms($check[0],PHPGW_ACL_EDIT)) { Header('Location: ' . $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index')); $GLOBALS['egw']->common->phpgw_exit(); } $GLOBALS['egw_info']['flags']['app_header'] = lang('Addressbook').' - '.lang('Edit'); $GLOBALS['egw']->common->phpgw_header(); echo parse_navbar(); /* Read in user custom fields, if any */ $custom = $this->fields->_read(); $customfields = array(); // while(list($x,$y) = @each($custom)) foreach($custom as $x => $y) { $customfields[$y['name']] = $y['title']; } /* merge in extra fields */ $qfields = $this->bo->stock_contact_fields + $this->extrafields + $customfields; $fields = $this->bo->read_entry(array('id' => (int) $_GET['ab_id'], 'fields' => $qfields)); $this->addressbook_form('edit','menuaction=addressbook.uiaddressbook.edit',lang('Edit'),$fields[0],$customfields); $GLOBALS['egw']->template->set_file(array('edit' => 'edit.tpl')); $GLOBALS['egw']->template->set_var('th_bg',$GLOBALS['egw_info']['theme']['th_bg']); $GLOBALS['egw']->template->set_var('ab_id',(int) $_GET['ab_id']); $GLOBALS['egw']->template->set_var('tid',$check[0]['tid']); $GLOBALS['egw']->template->set_var('referer',$referer); $GLOBALS['egw']->template->set_var('lang_save',lang('Save')); $GLOBALS['egw']->template->set_var('lang_apply',lang('Apply')); $GLOBALS['egw']->template->set_var('lang_cancel',lang('Cancel')); $GLOBALS['egw']->template->set_var('cancel_link','
'); if(($this->bo->grants[$check[0]['owner']] & PHPGW_ACL_DELETE) || $check[0]['owner'] == $GLOBALS['egw_info']['user']['account_id']) { $GLOBALS['egw']->template->set_var('delete_link',''); $GLOBALS['egw']->template->set_var('delete_button',''); } $GLOBALS['egw']->template->pfp('out','edit'); } function delete() { $ab_id = $_POST['entry']['ab_id'] ? $_POST['entry']['ab_id'] : $_POST['ab_id']; $select = $_POST['select']; if(@is_array($select)) { /* The original values are sent as select[number] = on */ $select = array_keys($select); } elseif(is_string($select)) { /* This is imploded below and sent along with the form if the answer is yes */ $select = explode(',',$select); } if(!$ab_id) { $ab_id = (int) $_GET['ab_id']; // else plain Link in delete does not work } if((!$ab_id && !$select) || $_POST['no']) { Header('Location: ' . $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index')); } if(!@is_array($select)) { $select[] = $ab_id; } foreach($select as $_id) { if(!(int)$_id) { continue; } $check = $this->bo->read_entry(array('id' => $_id, 'fields' => array('owner' => 'owner','tid' => 'tid'))); if(!(($this->bo->grants[$check[0]['owner']] & PHPGW_ACL_DELETE) || $check[0]['owner'] == $GLOBALS['egw_info']['user']['account_id'])) { Header('Location: ' . $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index')); $GLOBALS['egw']->common->phpgw_exit(); } } /* done via javascript confirmation $GLOBALS['egw']->template->set_file(array('delete' => 'delete.tpl')); if(!$_POST['yes']) { $GLOBALS['egw_info']['flags']['app_header'] = lang('Addressbook').' - '.lang('Delete'); $GLOBALS['egw']->common->phpgw_header(); echo parse_navbar(); if(count($select) == 1) { $GLOBALS['egw']->template->set_var('lang_sure',lang('Are you sure you want to delete this entry ?')); } else { $GLOBALS['egw']->template->set_var('lang_sure',lang('Are you sure you want to delete these entries ?')); } $GLOBALS['egw']->template->set_var('no_link',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index')); $GLOBALS['egw']->template->set_var('lang_no',lang('NO')); $GLOBALS['egw']->template->set_var('yes_link',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.delete&ab_id=' . $ab_id . '&confirm=true')); $GLOBALS['egw']->template->set_var('select',implode(',',$select)); $GLOBALS['egw']->template->set_var('lang_yes',lang('YES')); $GLOBALS['egw']->template->pparse('out','delete'); } else */ { if(!@is_array($select)) { $select[] = $ab_id; } foreach($select as $null => $_id) { $this->bo->delete_entry(array('id' => $_id)); } @Header('Location: ' . $GLOBALS['egw']->link('/addressbook/index.php','menuaction=addressbook.uiaddressbook.index')); } } function rebuild_referer($val) { $val = urldecode($val); $vars = split('&',$val); $i = 0; foreach($vars as $key => $var) { $pair = split('=',$var); if($pair[0] == 'sq') { $pair[1] = $GLOBALS['egw']->session->sq; } $vars[$i] = implode('=',$pair); $i++; } $val = implode('&',$vars); return $val; } function view() { $ab_id = (int) $_GET['ab_id']; $save = $_POST['save']; $apply = $_POST['apply']; $referer = $this->rebuild_referer($_GET['referer']); /* First, make sure they have permission to this entry */ if(!$ab_id || !$this->bo->check_perms($ab_id,PHPGW_ACL_READ)) { Header('Location: ' . $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index')); $GLOBALS['egw']->common->phpgw_exit(); } elseif(!($save || $apply) && $ab_id) { $GLOBALS['egw_info']['flags']['app_header'] = lang('Address book - view'); $GLOBALS['egw']->common->phpgw_header(); echo parse_navbar(); } $GLOBALS['egw']->template->set_file(array('view_t' => 'view.tpl')); $GLOBALS['egw']->template->set_block('view_t','view_header','view_header'); $GLOBALS['egw']->template->set_block('view_t','view_row','view_row'); $GLOBALS['egw']->template->set_block('view_t','view_footer','view_footer'); $GLOBALS['egw']->template->set_block('view_t','view_buttons','view_buttons'); $custom = $this->fields->_read(); $customfields = array(); // while(list($x,$y) = @each($custom)) foreach($custom as $x => $y) { $customfields[$y['name']] = $y['title']; } /* _debug_array($this->prefs); */ // while(list($column,$x) = each($this->bo->stock_contact_fields)) foreach($this->bo->stock_contact_fields as $column => $x) { if(isset($this->prefs[$column]) && $this->prefs[$column]) { $columns_to_display[$column] = True; $colname[$column] = $column; } } /* merge in extra fields */ $qfields = $this->bo->stock_contact_fields + $this->extrafields + $customfields; $fields = $this->bo->read_entry(array('id' => $ab_id, 'fields' => $qfields)); $record_owner = $fields[0]['owner']; if($fields[0]['access'] == 'private') { $access_check = lang('private'); } else { $access_check = lang('public'); } unset($qfields['email_type']); // noone is useing that any more unset($qfields['email_home_type']); // @reset($qfields); // while(list($column,$null) = @each($qfields)) foreach($qfields as $column => $nul) { if($this->display_name($colname[$column])) { $GLOBALS['egw']->template->set_var('display_col',$this->display_name($colname[$column])); } elseif($this->display_name($column)) { $GLOBALS['egw']->template->set_var('display_col',$this->display_name($column)); } else { $GLOBALS['egw']->template->set_var('display_col',ucfirst($column)); } $ref = $data = ''; if($fields[0][$column]) { $tr_color = $GLOBALS['egw']->nextmatchs->alternate_row_color($tr_color); $GLOBALS['egw']->template->set_var('th_bg',$tr_color); $coldata = $fields[0][$column]; /* Some fields require special formatting. */ if(($column == 'note' || $column == 'pubkey') && $coldata) { $datarray = explode("\n",$coldata); if($datarray[1]) { // while(list($key,$info) = each($datarray)) foreach($datarray as $key => $info) { if($key) { $data .= ' ' .$info; } else { /* First row, don't close td/tr */ $data .= $info; } } $data .= ''; } else { $data = $coldata; } } elseif($column == 'url' && $coldata) { $ref = ''; $data = $coldata . ''; } elseif((($column == 'email') || ($column == 'email_home')) && $coldata) { if($GLOBALS['egw_info']['user']['apps']['email']) { $ref=''; } else { $ref = ''; } $data = $coldata.''; } elseif($column == 'bday') { list($month,$day,$year) = explode('/',$coldata); $data = $GLOBALS['egw']->common->dateformatorder($year,$month,$day,True); } else { /* But these do not */ $ref = ''; $data = $coldata; } if(!$data) { $GLOBALS['egw']->template->set_var('ref_data',' '); } else { $GLOBALS['egw']->template->set_var('ref_data',$ref . $data); } $GLOBALS['egw']->template->parse('cols','view_row',True); } } /* Following cleans up view_row, since we were only using it to fill {cols} */ //$GLOBALS['egw']->template->set_var('view_row',''); $fields['cat_id'] = is_array($this->cat_id) ? implode(',',$this->cat_id) : $this->cat_id; $cats = explode(',',$fields[0]['cat_id']); $catnames = array(); foreach($cats as $cat) { if ($cat) { $cat = $this->cat->return_single((int)$cat); $catnames[] = stripslashes($cat[0]['name']); } } $catname = implode('; ',$catnames); if (!$this->cat_id) { $this->cat_id = count($cats) > 1 ? $cats[1] : $cats[0]; } $tr_color = $GLOBALS['egw']->nextmatchs->alternate_row_color($tr_color); $GLOBALS['egw']->template->set_var(array( 'ref_data' => $GLOBALS['egw']->common->grab_owner_name($record_owner), 'display_col' => lang('Record owner'), 'th_bg' => $tr_color )); $GLOBALS['egw']->template->parse('cols','view_row',True); $tr_color = $GLOBALS['egw']->nextmatchs->alternate_row_color($tr_color); $GLOBALS['egw']->template->set_var(array( 'ref_data' => $access_check, 'display_col' => lang('Record access'), 'th_bg' => $tr_color )); $GLOBALS['egw']->template->parse('cols','view_row',True); if($catname) { $tr_color = $GLOBALS['egw']->nextmatchs->alternate_row_color($tr_color); $GLOBALS['egw']->template->set_var(array( 'ref_data' => $catname, 'display_col' => lang('Category'), 'th_bg' => $tr_color )); $GLOBALS['egw']->template->parse('cols','view_row',True); } if(($this->bo->grants[$record_owner] & PHPGW_ACL_EDIT) || ($record_owner == $GLOBALS['egw_info']['user']['account_id'])) { $extra_vars = array('cd' => 16,'query' => $this->query,'cat_id' => $this->cat_id); if($referer) { $extra_vars += array('referer' => urlencode($referer)); } $GLOBALS['egw']->template->set_var('edit_button',$this->html_1button_form('edit','Edit', $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.edit&ab_id=' .$ab_id),'window.open(\''.$GLOBALS['egw']->link('/index.php?menuaction=addressbook.uicontacts.edit') . '&contact_id='.$ab_id. '\',\'\',\'dependent=yes,width=850,height=440,location=no,menubar=no,toolbar=no,scrollbars=yes,status=yes\');return false;')); } $GLOBALS['egw']->template->set_var('copy_button',$this->html_1button_form('submit','copy', $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.copy&ab_id=' . $fields[0]['id']))); if($fields[0]['n_family'] && $fields[0]['n_given']) { $GLOBALS['egw']->template->set_var('vcard_button',$this->html_1button_form('VCardForm','VCard', $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uivcard.out&ab_id=' .$ab_id))); } else { $GLOBALS['egw']->template->set_var('vcard_button',lang('no vcard')); } $GLOBALS['egw']->template->set_var('done_button',$this->html_1button_form('DoneForm','Done', $referer ? $referer : $GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.index'))); $GLOBALS['egw']->template->set_var('access_link',$access_link); $GLOBALS['egw']->template->set_var('view_row',''); // cleanup to avoid showing categories twice $GLOBALS['egw']->template->pfp('phpgw_body','view_t'); $GLOBALS['egw']->hooks->process(array( 'location' => 'addressbook_view', 'ab_id' => $ab_id )); } function html_1button_form($name,$lang,$link,$onclick='') { $html = '' . "\n"; $html .= '' . "\n"; $html .= '
' . "\n"; return $html; } function preferences() { $prefs = $_POST['prefs']; $other = $_POST['other']; $fcat_id = (int)$_POST['fcat_id']; $custom = $this->fields->_read(); $customfields = array(); // while(list($x,$y) = @each($custom)) foreach($custom as $x => $y) { $customfields[$y['name']] = $y['title']; } $qfields = $this->bo->stock_contact_fields + $this->extrafields + $customfields; if($_POST['cancel']) { $GLOBALS['egw']->redirect_link('/preferences/index.php'); } if($_POST['save'] || $_POST['apply']) { $totalerrors = 0; if(!count($prefs)) { $errors[$totalerrors++] = lang('You must select at least 1 column to display'); } if(!$totalerrors) { @reset($qfields); $this->bo->save_preferences($prefs,$other,$qfields,$fcat_id); if($_POST['save']) { $GLOBALS['egw']->redirect_link('/preferences/index.php'); } if($_POST['apply']) { $GLOBALS['egw']->redirect_link('/index.php','menuaction=addressbook.uiaddressbook.preferences'); } } } $GLOBALS['egw_info']['flags']['app_header'] = lang('Addressbook').' '.lang('Preferences'); $GLOBALS['egw']->common->phpgw_header(); echo parse_navbar(); if($totalerrors) { echo '

' . $GLOBALS['egw']->common->error_list($errors) . '
'; } $GLOBALS['egw']->template->set_file(array('preferences' => 'preferences.tpl')); $GLOBALS['egw']->template->set_var('action_url',$GLOBALS['egw']->link('/index.php','menuaction=addressbook.uiaddressbook.preferences')); $i = 0; $j = 0; $tr_color = $GLOBALS['egw']->nextmatchs->alternate_row_color($tr_color); // while(list($col, $descr) = each($qfields)) foreach($qfields as $col => $descr) { /* echo '
test: $col - $i $j - ' . count($abc); */ $i++; $j++; $showcol = $this->display_name($col); if(!$showcol) { $showcol = $col; } /* yank the *'s prior to testing for a valid column description */ $coltest = ereg_replace('\*','',$showcol); if($coltest) { $GLOBALS['egw']->template->set_var($col,$showcol); if($GLOBALS['egw_info']['user']['preferences']['addressbook'][$col]) { $GLOBALS['egw']->template->set_var($col.'_checked',' checked'); } else { $GLOBALS['egw']->template->set_var($col.'_checked',''); } } } if($customfields) { $custom_var = ' '.lang('Custom Fields').': '; $tr_color = $GLOBALS['egw']->nextmatchs->alternate_row_color($tr_color); $i = 0; foreach($customfields as $name => $title) { if(!($i % 6)) { $custom_var .= "\n \n"; } $custom_var .= ' prefs[$name] ? ' checked' : ''). ' />' . htmlspecialchars($title) . '' . "\n"; if(!(++$i % 6)) { echo "\n"; } } if($i = 6 - ($i % 6)) { $custom_var .= "  \n \n"; } $GLOBALS['egw']->template->set_var('custom_fields',$custom_var); } else { $GLOBALS['egw']->template->set_var('custom_fields',''); } $tr_color = $GLOBALS['egw']->nextmatchs->alternate_row_color($tr_color); $GLOBALS['egw']->template->set_var(tr_color,$tr_color); $GLOBALS['egw']->template->set_var('lang_showbirthday',lang('show birthday reminders on main screen')); if($this->prefs['mainscreen_showbirthdays']) { $GLOBALS['egw']->template->set_var('show_birthday',' checked'); } else { $GLOBALS['egw']->template->set_var('show_birthday',''); } $list = array( 'none' => lang('Show all'), 'yours' => lang('Only yours'), 'private' => lang('Private') /*, 'blank' => lang('Blank') */ ); $GLOBALS['egw']->template->set_var('lang_default_filter',lang('Default Filter')); $GLOBALS['egw']->template->set_var('filter_select',$this->formatted_list('other[default_filter]',$list,$this->prefs['default_filter'])); $GLOBALS['egw']->template->set_var('lang_autosave',lang('Autosave default category')); if($this->prefs['autosave_category']) { $GLOBALS['egw']->template->set_var('autosave',' checked'); } else { $GLOBALS['egw']->template->set_var('autosave',''); } $GLOBALS['egw']->template->set_var('lang_defaultcat',lang('Default Category')); $GLOBALS['egw']->template->set_var('cat_select',$this->cat_option($this->prefs['default_category'], false, false)); $GLOBALS['egw']->template->set_var('lang_fields',lang('Fields to show in address list')); $GLOBALS['egw']->template->set_var('lang_personal',lang('Personal')); $GLOBALS['egw']->template->set_var('lang_business',lang('Business')); $GLOBALS['egw']->template->set_var('lang_home',lang('Home')); $GLOBALS['egw']->template->set_var('lang_phones',lang('Extra').' '.lang('Phone Numbers')); $GLOBALS['egw']->template->set_var('lang_other',lang('Other').' '.lang('Fields')); $GLOBALS['egw']->template->set_var('lang_otherprefs',lang('Other').' '.lang('Preferences')); $GLOBALS['egw']->template->set_var('lang_save',lang('Save')); $GLOBALS['egw']->template->set_var('lang_apply',lang('Apply')); $GLOBALS['egw']->template->set_var('lang_cancel',lang('Cancel')); $GLOBALS['egw']->template->set_var('th_bg', $GLOBALS['egw_info']['theme']['th_bg']); $GLOBALS['egw']->template->set_var('th_text',$GLOBALS['egw_info']['theme']['th_text']); $GLOBALS['egw']->template->set_var('row_on', $GLOBALS['egw_info']['theme']['row_on']); $GLOBALS['egw']->template->set_var('row_off',$GLOBALS['egw_info']['theme']['row_off']); $GLOBALS['egw']->template->pparse('out','preferences'); } function get_form() { $entry = $_POST['entry']; $fcat_id = $_POST['fcat_id']; $referer = $entry['referer'] ? $entry['referer'] : $_GET['referer']; $referer = $referer ? $referer : $_POST['referer']; $test = @unserialize(rawurldecode($entry)); if($test && ($test != $entry)) { $entry = $test; } /* _debug_array($entry); exit; */ 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']; } $fields['url'] = $entry['url'] == 'http://' ? '' : $entry['url']; $fields['lid'] = $entry['lid']; $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); $custom = $this->fields->_read(); foreach($custom as $name => $val) { $fields[$val['name']] = $entry[$val['name']]; } $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($fcat_id)) { $fields['cat_id'] = count($fcat_id) > 1 ? ','.implode(',',$fcat_id).',' : (int)$fcat_id[0]; } else { $fields['cat_id'] = (int)$fcat_id; } $fields['ab_id'] = $entry['ab_id']; $fields['tid'] = $entry['tid']; if(!$fields['tid']) { $fields['tid'] = 'n'; } $fields['referer'] = $referer; /* _debug_array($fields);exit; */ return $fields; } /* end get_form() */ /* Following used for add/edit */ function addressbook_form($format,$action,$title='',$fields='',$customfields='',$cat_id='') { $referer = $_GET['referer'] ? $_GET['referer'] : $_POST['referer']; $GLOBALS['egw']->template->set_file(array('form' => 'form.tpl')); if(($GLOBALS['egw_info']['server']['countrylist'] == 'user_choice' && $GLOBALS['egw_info']['user']['preferences']['common']['countrylist'] == 'use_select') || ($GLOBALS['egw_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']; } $cats_link = $this->cat_option($cat_id,True,False,True); if($access == 'private') { $access_check = ' checked'; } else { $access_check = ''; } if($customfields) { // while(list($name,$value) = each($customfields)) foreach($customfields as $name => $value) { $value = str_replace('_',' ',$value); $custom .= '   '.$value.': '; } } if($format != "view") { /* Preferred phone number radio buttons */ $pref[0] = ''; $pref[1] = '(' . lang('pref') . ')'; // while(list($name,$val) = each($this->bo->tel_types)) foreach($this->bo->tel_types as $name => $val) { $str[$name] = "\n".' template->set_var("pref_".$name,$str[$name]); } if(strlen($bday) > 2) { list($month, $day, $year) = split('/', $bday); $temp_month[$month] = ' selected'; $bday_month = ''; $bday_day = ''; $bday_year = ''; } else { $bday_month = ''; $bday_day = ''; $bday_year = ''; } $time_zone = '' . "\n"; $email_type = ''; // reset($this->bo->email_types); $hemail_type = ''; // reset($this->bo->adr_types); // while(list($type,$val) = each($this->bo->adr_types)) foreach($this->bo->adr_types as $type => $val) { $badrtype .= "\n".'bo->adr_types); // while(list($type,$val) = each($this->bo->adr_types)) foreach($this->bo->adr_types as $type => $val) { $hadrtype .= "\n".''; $label = ''; $pubkey = ''; } else { $notes = '
'; if($bday == '//') { $bday = ''; } } if($action) { echo '
'; } if(!ereg('^http://',$url)) { $url = 'http://' . $url; } $birthday = $GLOBALS['egw']->common->dateformatorder($bday_year,$bday_month,$bday_day) . ''.lang('(e.g. 1969)').''; if($format == 'edit') { $create .= '' . lang("Created by") . ':' . '' . $GLOBALS['egw']->common->grab_owner_name($fields["owner"]); } else { $create .= ''; } $GLOBALS['egw']->template->set_var('lang_home',lang('Home')); $GLOBALS['egw']->template->set_var('lang_business',lang('Business')); $GLOBALS['egw']->template->set_var('lang_personal',lang('Personal')); $GLOBALS['egw']->template->set_var('lang_lastname',lang('Last Name')); $GLOBALS['egw']->template->set_var('lastname',$lastname); $GLOBALS['egw']->template->set_var('lang_firstname',lang('First Name')); $GLOBALS['egw']->template->set_var('firstname',$firstname); $GLOBALS['egw']->template->set_var('lang_middle',lang('Middle Name')); $GLOBALS['egw']->template->set_var('middle',$middle); $GLOBALS['egw']->template->set_var('lang_prefix',lang('Prefix')); $GLOBALS['egw']->template->set_var('prefix',$prefix); $GLOBALS['egw']->template->set_var('lang_suffix',lang('Suffix')); $GLOBALS['egw']->template->set_var('suffix',$suffix); $GLOBALS['egw']->template->set_var('lang_birthday',lang('Birthday')); $GLOBALS['egw']->template->set_var('birthday',$birthday); $GLOBALS['egw']->template->set_var('lang_company',lang('Company Name')); $GLOBALS['egw']->template->set_var('company',$company); $GLOBALS['egw']->template->set_var('lang_department',lang('Department')); $GLOBALS['egw']->template->set_var('department',$department); $GLOBALS['egw']->template->set_var('lang_title',lang('Title')); $GLOBALS['egw']->template->set_var('title',$title); $GLOBALS['egw']->template->set_var('lang_email',lang('Business Email')); $GLOBALS['egw']->template->set_var('email',$email); $GLOBALS['egw']->template->set_var('lang_email_type',lang('Business EMail Type')); $GLOBALS['egw']->template->set_var('email_type',$email_type); $GLOBALS['egw']->template->set_var('lang_url',lang('URL')); $GLOBALS['egw']->template->set_var('url',$url); $GLOBALS['egw']->template->set_var('lang_timezone',lang('time zone offset')); $GLOBALS['egw']->template->set_var('timezone',$time_zone); $GLOBALS['egw']->template->set_var('lang_fax',lang('Business Fax')); $GLOBALS['egw']->template->set_var('fax',$fax); $GLOBALS['egw']->template->set_var('lang_wphone',lang('Business Phone')); $GLOBALS['egw']->template->set_var('wphone',$wphone); $GLOBALS['egw']->template->set_var('lang_pager',lang('Pager')); $GLOBALS['egw']->template->set_var('pager',$pager); $GLOBALS['egw']->template->set_var('lang_mphone',lang('Cell Phone')); $GLOBALS['egw']->template->set_var('mphone',$mphone); $GLOBALS['egw']->template->set_var('lang_msgphone',lang('Message Phone')); $GLOBALS['egw']->template->set_var('msgphone',$msgphone); $GLOBALS['egw']->template->set_var('lang_isdnphone',lang('ISDN Phone')); $GLOBALS['egw']->template->set_var('isdnphone',$isdnphone); $GLOBALS['egw']->template->set_var('lang_carphone',lang('Car Phone')); $GLOBALS['egw']->template->set_var('carphone',$carphone); $GLOBALS['egw']->template->set_var('lang_vidphone',lang('Video Phone')); $GLOBALS['egw']->template->set_var('vidphone',$vidphone); $GLOBALS['egw']->template->set_var('lang_ophone',lang('Other Number')); $GLOBALS['egw']->template->set_var('ophone',$ophone); $GLOBALS['egw']->template->set_var('lang_bstreet',lang('Business Street')); $GLOBALS['egw']->template->set_var('bstreet',$bstreet); $GLOBALS['egw']->template->set_var('lang_address2',lang('Address Line 2')); $GLOBALS['egw']->template->set_var('address2',$address2); $GLOBALS['egw']->template->set_var('lang_address3',lang('Address Line 3')); $GLOBALS['egw']->template->set_var('address3',$address3); $GLOBALS['egw']->template->set_var('lang_bcity',lang('Business City')); $GLOBALS['egw']->template->set_var('bcity',$bcity); $GLOBALS['egw']->template->set_var('lang_bstate',lang('Business State')); $GLOBALS['egw']->template->set_var('bstate',$bstate); $GLOBALS['egw']->template->set_var('lang_bzip',lang('Business Zip Code')); $GLOBALS['egw']->template->set_var('bzip',$bzip); $GLOBALS['egw']->template->set_var('lang_bcountry',lang('Business Country')); $GLOBALS['egw']->template->set_var('bcountry',$bcountry); if($countrylist) { $GLOBALS['egw']->template->set_var('bcountry',$GLOBALS['egw']->country->form_select($bcountry,'entry[bcountry]')); } else { $GLOBALS['egw']->template->set_var('bcountry',''); } $GLOBALS['egw']->template->set_var('lang_badrtype',lang('Address Type')); $GLOBALS['egw']->template->set_var('badrtype',$badrtype); $GLOBALS['egw']->template->set_var('lang_hphone',lang('Home Phone')); $GLOBALS['egw']->template->set_var('hphone',$hphone); $GLOBALS['egw']->template->set_var('lang_hemail',lang('Home Email')); $GLOBALS['egw']->template->set_var('hemail',$hemail); $GLOBALS['egw']->template->set_var('lang_hemail_type',lang('Home EMail Type')); $GLOBALS['egw']->template->set_var('hemail_type',$hemail_type); $GLOBALS['egw']->template->set_var('lang_hstreet',lang('Home Street')); $GLOBALS['egw']->template->set_var('hstreet',$hstreet); $GLOBALS['egw']->template->set_var('lang_hcity',lang('Home City')); $GLOBALS['egw']->template->set_var('hcity',$hcity); $GLOBALS['egw']->template->set_var('lang_hstate',lang('Home State')); $GLOBALS['egw']->template->set_var('hstate',$hstate); $GLOBALS['egw']->template->set_var('lang_hzip',lang('Home Zip Code')); $GLOBALS['egw']->template->set_var('hzip',$hzip); $GLOBALS['egw']->template->set_var('lang_hcountry',lang('Home Country')); if($countrylist) { $GLOBALS['egw']->template->set_var('hcountry',$GLOBALS['egw']->country->form_select($hcountry,'entry[hcountry]')); } else { $GLOBALS['egw']->template->set_var('hcountry',''); } $GLOBALS['egw']->template->set_var('lang_hadrtype',lang('Address Type')); $GLOBALS['egw']->template->set_var('hadrtype',$hadrtype); $GLOBALS['egw']->template->set_var('create',$create); $GLOBALS['egw']->template->set_var('lang_notes',lang('notes')); $GLOBALS['egw']->template->set_var('notes',$notes); $GLOBALS['egw']->template->set_var('lang_label',lang('label')); $GLOBALS['egw']->template->set_var('label',$label); $GLOBALS['egw']->template->set_var('lang_pubkey',lang('Public Key')); $GLOBALS['egw']->template->set_var('pubkey',$pubkey); $GLOBALS['egw']->template->set_var('access_check',$access_check); $GLOBALS['egw']->template->set_var('lang_private',lang('Private')); $GLOBALS['egw']->template->set_var('lang_cats',lang('Category')); $GLOBALS['egw']->template->set_var('cats_link',$cats_link); if($customfields) { $GLOBALS['egw']->template->set_var('lang_custom',lang('Custom Fields').':'); $GLOBALS['egw']->template->set_var('custom',$custom); } else { $GLOBALS['egw']->template->set_var('lang_custom',''); $GLOBALS['egw']->template->set_var('custom',''); } $GLOBALS['egw']->template->set_var('th_bg', $GLOBALS['egw_info']['theme']['th_bg']); $GLOBALS['egw']->template->set_var('th_text', $GLOBALS['egw_info']['theme']['th_text']); $GLOBALS['egw']->template->set_var('row_on', $GLOBALS['egw_info']['theme']['row_on']); $GLOBALS['egw']->template->set_var('row_off', $GLOBALS['egw_info']['theme']['row_off']); $GLOBALS['egw']->template->set_var('row_text',$GLOBALS['egw_info']['theme']['row_text']); $GLOBALS['egw']->template->pfp('out','form'); } /* end form function */ } ?>