True, 'nonavbar' => True, 'currentapp' => 'addressbook', 'enable_nextmatchs_class' => True ); include('../header.inc.php'); // add a content-type header to overwrite an existing default charset in apache (AddDefaultCharset directiv) header('Content-type: text/html; charset='.$GLOBALS['egw']->translation->charset()); include('templates/'.$GLOBALS['egw_info']['user']['preferences']['common']['template_set'].'/head.inc.php'); $GLOBALS['egw']->template->set_root(EGW_TEMPLATE_DIR); $GLOBALS['egw']->template->set_file(array( 'addressbook_list_t' => 'addressbook.tpl', )); $GLOBALS['egw']->template->set_block('addressbook_list_t','addressbook_list','list'); $contacts =& CreateObject('phpgwapi.contacts'); $cats =& CreateObject('phpgwapi.categories','','addressbook'); $include_personal = True; $GLOBALS['egw']->template->set_var(array( 'lang_search' => lang('Search'), 'lang_select_cats' => lang('Show all categorys'), 'lang_done' => lang('Done'), 'to' => lang('To'), 'cc' => lang('Cc'), 'bcc' => lang('Bcc'), 'lang_email' => lang('Select work email address'), 'lang_hemail' => lang('Select home email address'), 'lang_to_title' => lang('Select all %1 %2 for %3') )); $start = (int)get_var('start',array('POST','GET'),0); $filter = get_var('filter',array('POST','GET'),'none'); $cat_id = (int)get_var('cat_id',array('POST','GET'),0); $query = get_var('query',array('POST','GET')); $sort = get_var('sort',array('POST','GET')); $order = get_var('order',array('POST','GET')); list($all) = @each($_POST['all']); $inserted = $_GET['inserted']; $common_vars = array( 'filter' => $filter, 'cat_id' => $cat_id, 'query' => $query, 'sort' => $sort, 'order' => $order, ); $link = '/phpgwapi/addressbook.php'; $full_link = $GLOBALS['egw']->link($link,$common_vars+array( 'start' => $start, )); $GLOBALS['egw']->template->set_var('form_action',$full_link); $qfilter = 'tid=n'; switch($filter) { case 'none': break; case 'private': $qfilter .=',access=private'; // fall-through case 'yours': $qfilter .= ',owner='.$GLOBALS['egw_info']['user']['account_id']; break; default: if(is_numeric($filter)) { $qfilter = ',owner='.$filter; } break; } if ($cat_id) { $qfilter .= ',cat_id='.$cat_id; } if ($GLOBALS['egw_info']['user']['preferences']['common']['maxmatchs'] > 0) { $offset = $GLOBALS['egw_info']['user']['preferences']['common']['maxmatchs']; } else { $offset = 15; } $account_id = $GLOBALS['egw_info']['user']['account_id']; $cols = array ( 'n_given' => 'n_given', 'n_family' => 'n_family', 'org_name' => 'org_name', 'email' => 'email', 'email_home' => 'email_home' ); if ($all) { $qfilter .= ',email'.($all[0] == 'h' ? '_home' : '')."=!''"; $entries = $contacts->read(0,0,$cols,$query,$qfilter,$sort,$order); //echo "
".print_r($entries,True)."\n"; if (!$entries) { $all = False; $inserted = 0; } } if (!$all) { $entries = $contacts->read($start,$offset,$cols,$query,$qfilter,$sort,$order); } //------------------------------------------- nextmatch -------------------------------------------- $GLOBALS['egw']->template->set_var('left',$GLOBALS['egw']->nextmatchs->left( $link,$start,$contacts->total_records,$GLOBALS['egw']->nextmatchs->extras_to_string($common_vars))); $GLOBALS['egw']->template->set_var('right',$GLOBALS['egw']->nextmatchs->right( $link,$start,$contacts->total_records,$GLOBALS['egw']->nextmatchs->extras_to_string($common_vars))); foreach(array( 'n_given' => lang('Firstname'), 'n_family' => lang('Lastname'), 'org_name' => lang('Company'), ) as $col => $translation) { $GLOBALS['egw']->template->set_var('sort_'.$col,$GLOBALS['egw']->nextmatchs->show_sort_order( $sort,$col,$order,$link,$translation,'&cat_id='.$cat_id)); } if ($contacts->total_records > $offset) { $GLOBALS['egw']->template->set_var('lang_showing',lang('showing %1 - %2 of %3', 1+$start,$start+$offset>$contacts->total_records ? $contacts->total_records : $start+$offset, $contacts->total_records)); } else { $GLOBALS['egw']->template->set_var('lang_showing',lang('showing %1',$contacts->total_records)); } // --------------------------------------- end nextmatch ------------------------------------------ foreach(array( 'work' => lang('work email'), 'home' => lang('home email') ) as $type => $lang_type) { foreach(array( 'to' => lang('To'), 'cc' => lang('Cc'), 'bcc'=> lang('Bcc')) as $target => $lang_target) { $GLOBALS['egw']->template->set_var('title_'.$type.'_'.$target, lang('Insert all %1 addresses of the %2 contacts in %3',$lang_type, $contacts->total_records,$lang_target)); } } // ------------------- list header variable template-declaration ----------------------- $GLOBALS['egw']->template->set_var('cats_list',$cats->formated_list('select','all',$cat_id,'True')); $filter_list = ''; foreach(array( 'none' => lang('Show all'), 'yours' => lang('Only yours'), 'private' => lang('Only private'), ) as $id => $translation) { $filter_list .= "\n"; } $GLOBALS['egw']->template->set_var(array( 'query' => $query, 'filter_list' => $filter_list, )); // --------------------------- end header declaration ---------------------------------- $all_emails = array(); if ($entries) foreach ($entries as $entry) { $GLOBALS['egw']->template->set_var('tr_class', $GLOBALS['egw']->nextmatchs->alternate_row_color('',True)); $firstname = $entry['n_given']; if (!$firstname) { $firstname = ' '; } $lastname = $entry['n_family']; if (!$lastname) { $lastname = ' '; } // thanks to dave.hall@mbox.com.au for adding company $company = $entry['org_name']; if (!$company) { $company = ' '; } $personal_firstname = ''; $personal_lastname = ''; $personal_part = ''; if ((isset($firstname)) && ($firstname != '') && ($firstname != ' ')) { $personal_firstname = $firstname.' '; } if ((isset($lastname)) && ($lastname != '') && ($lastname != ' ')) { $personal_lastname = $lastname; } $personal_part = $personal_firstname.$personal_lastname; if (($personal_part == '') || ($include_personal == False)) { $id = $entry['id']; $email = $entry['email']; $hemail = $entry['email_home']; } else { $id = $entry['id']; if ((isset($entry['email'])) && (trim($entry['email']) != '')) { $email = '"'.$personal_part.'" <'.$entry['email'].'>'; } else { $email = $entry['email']; } if ((isset($entry['email_home'])) && (trim($entry['email_home']) != '')) { $hemail = '"'.$personal_part.'" <'.$entry['email_home'].'>'; } else { $hemail = $entry['email_home']; } } if ($all) { $all_emails[] = $all[0] == 'h' ? $hemail : $email; } else { $email = htmlspecialchars($email); $hemail = htmlspecialchars($hemail); // --------------------- template declaration for list records -------------------------- $GLOBALS['egw']->template->set_var(array( 'firstname' => $firstname, 'lastname' => $lastname, 'company' => $company )); $GLOBALS['egw']->template->set_var('id',$id); $GLOBALS['egw']->template->set_var('email',$email); $GLOBALS['egw']->template->set_var('hemail',$hemail); $GLOBALS['egw']->template->parse('list','addressbook_list',True); } } // --------------------------- end record declaration --------------------------- if ($all && count($all_emails)) { $full_link .= '&inserted='.count($all_emails); $target = substr($all,1); echo "