filter()); $title .= ' - ' . $peerscope->label(); if ($site_id) { $sites=$api->GetSites(array($site_id),array("name","login_base","person_ids")); $site=$sites[0]; $name=$site['name']; $login_base=$site['login_base']; $title .= t_site($site); $person_filter['person_id']=$site['person_ids']; if ($site_id != plc_my_site_id()) $tabs []= tab_site($site); } if ($slice_id) { $slices=$api->GetSlices(array($slice_id),array('person_ids','name')); $slice=$slices[0]; $title .= t_slice($slice); $tabs []= tab_slice($slice); $person_filter['person_id'] = $slice['person_ids']; } // go $persons=$api->GetPersons($person_filter,$person_columns); // build site_ids - take all site_ids into account $site_ids=array(); if ($persons) foreach ($persons as $person) { if ($person['site_ids']) foreach ($person['site_ids'] as $person_site_id) { $site_ids []= $person_site_id; } } // fetch related sites $site_columns=array('site_id','login_base'); $site_filter=array('site_id'=>$site_ids); $sites=$api->GetSites($site_filter,$site_columns); // hash on site_id $site_hash=array(); foreach ($sites as $site) { $site_hash[$site['site_id']]=$site; } // -------------------- drupal_set_title($title); plekit_linetabs($tabs); if ( ! $persons ) { drupal_set_message ('No account found'); return; } $nifty=new PlekitNifty ('','objects-list','big'); $nifty->start(); $headers=array(); if (plc_is_admin()) $headers["I"]='int'; $headers["Peer"]="string"; $headers["First"]="string"; $headers["Last"]="string"; $headers["Email"]="string"; $headers["Site(s)" ]= "string"; $headers["R"]="string"; $headers["S" ]= "int"; $headers["Status"]="string"; // sort on email if (! plc_is_admin()) $sort_column=3; // but turn off initial sort for admins as this slows stuff down terribly else $sort_column =-1; $table=new PlekitTable("persons",$headers,$sort_column); $table->start(); $peers=new Peers ($api); // write rows foreach ($persons as $person) { $person_id=$person['person_id']; $email=$person['email']; $site_ids = $person['site_ids']; $roles = plc_vertical_table ($person['roles']); $peer_id=$person['peer_id']; $table->row_start(); if (plc_is_admin()) $table->cell(href(l_person($person_id),$person_id)); $peers->cell($table,$peer_id); $table->cell (href(l_person($person_id),$person['first_name'])); $table->cell (href(l_person($person_id),$person['last_name'])); $table->cell(l_person_t($person_id,$email)); $site_links = array(); foreach ($site_ids as $site_id) { $site=$site_hash[$site_id]; $login_base = $site['login_base']; $site_links []= l_site_t($site_id,$login_base); } $table->cell(plc_vertical_table($site_links),array('only-if'=>!$peer_id)); $table->cell($roles,array('only-if'=>!$peer_id)); $table->cell(count($person['slice_ids'])); $table->cell(person_status($person)); $table->row_end(); } $notes = array(); if (plc_is_admin()) $notes[]= "I = person_id"; $notes []= "R = roles"; $notes []= "S = number of slices"; $table->end(array('notes'=>$notes)); $nifty->end(); //plekit_linetabs ($tabs,"bottom"); // Print footer include 'plc_footer.php'; ?>