* * -------------------------------------------- * * 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$ */ $phpgw_info['flags'] = array( 'noheader' => True, 'nonavbar' => True, 'currentapp' => 'addressbook', 'enable_contacts_class' => True, 'enable_nextmatchs_class' => True ); include('../header.inc.php'); $contacts = CreateObject("phpgwapi.contacts"); // First, make sure they have permission to this entry $check = addressbook_read_entry($ab_id,array('owner' => 'owner')); $perms = $contacts->check_perms($contacts->grants[$check[0]['owner']],PHPGW_ACL_READ); if ( (!$perms) && ($check[0]['owner'] != $phpgw_info['user']['account_id']) ) { Header("Location: " . $phpgw->link('/addressbook/index.php',"cd=16&order=$order&sort=$sort&filter=$filter&start=$start&query=$query&cat_id=$cat_id")); $phpgw->common->phpgw_exit(); } if (!$ab_id) { Header("Location: " . $phpgw->link('/addressbook/index.php')); } elseif (!$submit && $ab_id) { $phpgw->common->phpgw_header(); echo parse_navbar(); } $t = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $t->set_file(array('view_t' => 'view.tpl')); $t->set_block('view_t','view_header','view_header'); $t->set_block('view_t','view_row','view_row'); $t->set_block('view_t','view_footer','view_footer'); $t->set_block('view_t','view_buttons','view_buttons'); $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); } } while ($column = each($contacts->stock_contact_fields)) { if (isset($phpgw_info['user']['preferences']['addressbook'][$column[0]]) && $phpgw_info['user']['preferences']['addressbook'][$column[0]]) { $columns_to_display[$column[0]] = True; $colname[$column[0]] = $column[0]; } } // No prefs? if (!$columns_to_display ) { $columns_to_display = array( 'n_given' => 'n_given', 'n_family' => 'n_family', 'org_name' => 'org_name', 'tel_work' => 'tel_work', 'tel_home' => 'tel_home', 'email' => 'email', 'email_home' => 'email_home' ); while ($column = each($columns_to_display)) { $colname[$column[0]] = $column[1]; } $noprefs = " - " . lang('Please set your preferences for this app'); } // merge in extra fields $extrafields = array( 'ophone' => 'ophone', 'address2' => 'address2', 'address3' => 'address3' ); $qfields = $contacts->stock_contact_fields + $extrafields + $customfields; $fields = addressbook_read_entry($ab_id,$qfields); $record_owner = $fields[0]['owner']; if ($fields[0]["access"] == 'private') { $access_check = lang('private'); } else { $access_check = lang('public'); } $t->set_var('lang_viewpref',lang("Address book - view") . $noprefs); @reset($qfields); while (list($column,$null) = @each($qfields)) // each entry column { if(display_name($colname[$column])) { $t->set_var('display_col',display_name($colname[$column])); } elseif(display_name($column)) { $t->set_var('display_col',display_name($column)); } else { $t->set_var('display_col',ucfirst($column)); } $ref = $data = ""; if ($fields[0][$column]) { $tr_color = $phpgw->nextmatchs->alternate_row_color($tr_color); $t->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)) { if ($key) { $data .= ' ' .$info; } else { // First row, don't close td/tr $data .= $info; } } $data .= ""; } else { $data = $coldata; } } elseif($column == 'label' && $coldata) { $data .= $contacts->formatted_address($fields[0]['id'],'',False); } elseif ($column == "url" && $coldata) { $ref = ''; $data = $coldata . ''; } elseif ( (($column == "email") || ($column == "email_home")) && $coldata) { if ($phpgw_info["user"]["apps"]["email"]) { $ref=''; } else { $ref = ''; } $data = $coldata.""; } else { // But these do not $ref = ""; $data = $coldata; } if (!$data) { $t->set_var('ref_data'," "); } else { $t->set_var('ref_data',$ref . $data); } $t->parse('cols','view_row',True); } } // Following cleans up view_row, since we were only using it to fill {cols} $t->set_var('view_row',''); $fields['cat_id'] = is_array($cat_id) ? implode(',',$cat_id) : $cat_id; $cat = CreateObject('phpgwapi.categories'); $cats = explode(',',$fields[0]['cat_id']); if ($cats[1]) { while (list($key,$contactscat) = each($cats)) { if ($contactscat) { $catinfo = $cat->return_single($contactscat); $catname .= $catinfo[0]['name'] . '; '; } } if (!$cat_id) { $cat_id = $cats[0]; } } else { $fields[0]['cat_id'] = ereg_replace(',','',$fields[0]['cat_id']); $catinfo = $cat->return_single($fields[0]['cat_id']); $catname = $catinfo[0]['name']; if (!$cat_id) { $cat_id = $fields[0]['cat_id']; } } if (!$catname) { $catname = lang('none'); } // These are in the footer $t->set_var('lang_owner',lang('Record owner')); $t->set_var('owner',$phpgw->common->grab_owner_name($record_owner)); $t->set_var('lang_access',lang("Record access")); $t->set_var('access',$access_check); $t->set_var('lang_category',lang('Category')); $t->set_var('catname',$catname); $sfields = rawurlencode(serialize($fields[0])); function html_input_hidden($vars) { if (!is_array($vars)) { return ''; } while (list($name,$value) = each($vars)) { if ($value != '') // dont need to send all the empty vars { $html .= "\n"; } } return $html; } function html_submit_button($name,$lang) { return "\n"; } function phpgw_link($url,$vars='') { global $phpgw; if (is_array( $vars )) { while(list($name,$value) = each($vars)) { if ($value != '') // dont need to send all the empty vars { $v[] = "$name=$value"; } } $vars = implode('&',$v); } return $phpgw->link($url,$vars); } function html_1button_form($name,$lang,$hidden_vars,$url,$url_vars='',$method='POST') { $html = "
\n"; $html .= html_input_hidden($hidden_vars); $html .= html_submit_button($name,$lang); $html .= "
\n"; return $html; } $common_vars = array('sort' => $sort,'order' => $order,'filter' => $filter,'start' => $start); // common vars for all buttons if (($contacts->grants[$record_owner] & PHPGW_ACL_EDIT) || ($record_owner == $phpgw_info['user']['account_id'])) { $extra_vars = array('cd' => 16,'query' => $query,'cat_id' => $cat_id); if ($referer) $extra_vars += array( 'referer' => urlencode($referer)); $t->set_var('edit_button',html_1button_form('edit','Edit',array('ab_id' => $ab_id),'/addressbook/edit.php', $common_vars + $extra_vars)); } $t->set_var('copy_button',html_1button_form('submit','copy',$common_vars+array( 'fields' => rawurlencode(serialize($fields[0]))), '/addressbook/add.php')); if ($fields[0]['n_family'] && $fields[0]['n_given']) { $t->set_var('vcard_button',html_1button_form('VCardForm','VCard',$common_vars+array( 'ab_id' => $ab_id),'/addressbook/vcardout.php')); } else { $t->set_var('vcard_button',lang('no vcard')); } $t->set_var('done_button',html_1button_form('DoneForm','Done',$common_vars, $referer ? ereg_replace('/phpgroupware','',$referer) : '/addressbook/index.php', $common_vars + array('cd' => 16,'query' => $query))); $t->set_var('access_link',$access_link); $t->pfp('out','view_t'); $phpgw->common->phpgw_footer(); ?>