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$ */ $phpgw_info['flags'] = array( 'currentapp' => 'addressbook', 'enable_contacts_class' => True, 'enable_nextmatchs_class' => True ); include('../header.inc.php'); $t = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $t->set_file(array('addressbook_list_t' => 'index.tpl')); $t->set_block('addressbook_list_t','addressbook_header','addressbook_header'); $t->set_block('addressbook_list_t','column','column'); $t->set_block('addressbook_list_t','row','row'); $t->set_block('addressbook_list_t','addressbook_footer','addressbook_footer'); $contacts = CreateObject('phpgwapi.contacts'); $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); } } if (!isset($cat_id)) { $cat_id = $phpgw_info['user']['preferences']['addressbook']['default_category']; } if ($phpgw_info['user']['preferences']['addressbook']['autosave_category']) { $phpgw->preferences->delete('addressbook','default_category'); $phpgw->preferences->add('addressbook','default_category',$cat_id); } $phpgw->preferences->save_repository(); $extrafields = array( 'ophone' => 'ophone', 'address2' => 'address2', 'address3' => 'address3' ); /* $qfields = $contacts->stock_contact_fields + $extrafields + $customfields; */ /* create column list and the top row of the table based on user prefs */ while ($column = each($contacts->stock_contact_fields)) { $test = strtolower($column[0]); if (isset($phpgw_info['user']['preferences']['addressbook'][$test]) && $phpgw_info['user']['preferences']['addressbook'][$test]) { $showcol = display_name($column[0]); $cols .= ' ' . "\n"; $cols .= ' '; $cols .= $phpgw->nextmatchs->show_sort_order($sort, $column[0],$order,"/addressbook/index.php",$showcol,"&cat_id=".$cat_id); $cols .= "\n "; $cols .= "\n"; /* To be used when displaying the rows */ $columns_to_display[$column[0]] = True; } } $nonstd = $extrafields + $customfields; while ($column = each($nonstd)) { $test = strtolower($column[1]); if (isset($phpgw_info['user']['preferences']['addressbook'][$test]) && $phpgw_info['user']['preferences']['addressbook'][$test]) { $showcol = display_name($column[0]); /* This must be a custom field */ if (!$showcol) { $showcol = $column[1]; } $cols .= ' ' . "\n"; $cols .= ' '; $cols .= $showcol; $cols .= "\n "; $cols .= "\n"; /* To be used when displaying the rows */ $columns_to_display[$column[0]] = True; } } if (!$start) { $start = 0; } if($phpgw_info['user']['preferences']['common']['maxmatchs'] && $phpgw_info['user']['preferences']['common']['maxmatchs'] > 0) { $limit = $phpgw_info['user']['preferences']['common']['maxmatchs']; } else { $limit = 30; } if (!$filter) { if($phpgw_info['user']['preferences']['addressbook']['default_filter']) { $filter = $phpgw_info['user']['preferences']['addressbook']['default_filter']; } else { $filter = 'none'; } } /* Set qfilter to display entries where tid=n (normal contact entry), else they may be accounts, etc. */ $qfilter = 'tid=n'; switch ($filter) { case 'blank': $nosearch = True; break; case 'none': break; case 'private': $qfilter .= ',access=private'; /* fall through */ case 'yours': $qfilter .= ',owner='.$phpgw_info['user']['account_id']; break; default: $qfilter .= ',owner='.$filter; } if ($cat_id) { $qfilter .= ',cat_id='.$cat_id; } /* Check if prefs were set, if not, create some defaults */ if (!$columns_to_display ) { $columns_to_display = array( 'n_given' => 'n_given', 'n_family' => 'n_family', 'org_name' => 'org_name' ); $columns_to_display = $columns_to_display + $customfields; /* No prefs,. so cols above may have been set to "" or a bunch of */ $cols=""; while ($column = each($columns_to_display)) { $showcol = display_name($column[0]); if (!$showcol) { $showcol = $column[1]; } $cols .= ' ' . "\n"; $cols .= ' '; $cols .= $phpgw->nextmatchs->show_sort_order($sort, $column[0],$order,"/addressbook/index.php",$showcol,"&cat_id=$cat_id"); $cols .= "\n "; $cols .= "\n"; } $noprefs=lang('Please set your preferences for this app'); } $qcols = $columns_to_display; if (!$userid) { $userid = $phpgw_info['user']['account_id']; } if ($nosearch && !$query) { $entries = array(); $contacts->total_records = 0; } else { /* read the entry list */ $entries = addressbook_read_entries($start,$limit,$qcols,$query,$qfilter,$sort,$order,$userid); } $search_filter = $phpgw->nextmatchs->show_tpl('/addressbook/index.php', $start, $contacts->total_records,"&order=$order&filter=$filter&sort=$sort&query=$query&cat_id=$cat_id","75%", $phpgw_info["theme"]["th_bg"],1,1,1,1); $lang_showing = $phpgw->nextmatchs->show_hits($contacts->total_records,$start); /* set basic vars and parse the header */ $t->set_var(font,$phpgw_info['theme']['font']); $t->set_var('lang_view',lang('View')); $t->set_var('lang_vcard',lang('VCard')); $t->set_var('lang_edit',lang('Edit')); $t->set_var('lang_owner',lang('Owner')); $t->set_var('searchreturn',$noprefs . ' ' . $searchreturn); $t->set_var('lang_showing',$lang_showing); $t->set_var('search_filter',$search_filter); $t->set_var('cats',lang('Category')); $t->set_var('cats_url',$phpgw->link('/addressbook/index.php')); $t->set_var('cats_link',cat_option($cat_id)); $t->set_var('lang_cats',lang('Select')); $t->set_var('lang_addressbook',lang('Address book')); $t->set_var('th_bg',$phpgw_info['theme']['th_bg']); $t->set_var('th_font',$phpgw_info['theme']['font']); $t->set_var('th_text',$phpgw_info['theme']['th_text']); $t->set_var('lang_add',lang('Add')); $t->set_var('add_url',$phpgw->link('/addressbook/add.php')); $t->set_var('lang_addvcard',lang('AddVCard')); $t->set_var('vcard_url',$phpgw->link('/addressbook/vcardin.php')); $t->set_var('lang_import',lang('Import Contacts')); $t->set_var('import_url',$phpgw->link('/addressbook/import.php')); $t->set_var('lang_import_alt',lang('Alt. CSV Import')); $t->set_var('import_alt_url',$phpgw->link('/addressbook/csv_import.php')); $t->set_var('lang_export',lang('Export Contacts')); $t->set_var('export_url',$phpgw->link('/addressbook/export.php')); $t->set_var('start',$start); $t->set_var('sort',$sort); $t->set_var('order',$order); $t->set_var('filter',$filter); $t->set_var('query',$query); $t->set_var('cat_id',$cat_id); $t->set_var('qfield',$qfield); $t->set_var('query',$query); $t->set_var('start',$start); $t->set_var('filter',$filter); $t->set_var('cols',$cols); $t->pparse('out','addressbook_header'); /* Show the entries */ /* each entry */ for ($i=0;$iset_var('columns',''); $tr_color = $phpgw->nextmatchs->alternate_row_color($tr_color); $t->set_var('row_tr_color',$tr_color); $myid = $entries[$i]['id']; $myowner = $entries[$i]['owner']; /* each entry column */ while ($column = each($columns_to_display)) { $ref = $data=''; $coldata = $entries[$i][$column[0]]; /* Some fields require special formatting. */ if ($column[0] == 'url') { if ( !empty($coldata) && (substr($coldata,0,7) != 'http://') ) { $coldata = 'http://' . $coldata; } $ref=''; $data=$coldata.''; } elseif ( ($column[0] == 'email') || ($column[0] == 'email_home') ) { if ($phpgw_info['user']['apps']['email']) { $ref=''; } else { $ref=''; } $data=$coldata . ''; } else /* But these do not */ { $ref = ''; $data = $coldata; } $t->set_var('col_data',$ref.$data); $t->parse('columns','column',True); } if (1) { $t->set_var('row_view_link',$phpgw->link('/addressbook/view.php', "ab_id=$myid&start=$start&order=$order&filter=" . "$filter&query=$query&sort=$sort&cat_id=$cat_id")); } else { $t->set_var('row_view_link',''); $t->set_var('lang_view',lang('Private')); } $t->set_var('row_vcard_link',$phpgw->link('/addressbook/vcardout.php', "ab_id=$myid&start=$start&sort=$sort&order=$order&filter=" . "$filter&query=$query&sort=$sort&cat_id=$cat_id")); /* echo '
: ' . $contacts->grants[$myowner] . ' - ' . $myowner; */ if ($contacts->check_perms($contacts->grants[$myowner],PHPGW_ACL_EDIT) || $myowner == $phpgw_info['user']['account_id']) { $t->set_var('row_edit','' . lang('Edit') . ''); } else { $t->set_var('row_edit',' '); } $t->set_var('row_owner',$phpgw->accounts->id2name($myowner)); $t->parse('rows','row',True); $t->pparse('out','row'); reset($columns_to_display); } $t->pparse('out','addressbook_footer'); $phpgw->common->phpgw_footer(); ?>