. * */ function contacts_namesort($a,$b){ return strcmp($a['fullname'],$b['fullname']); } // Init owncloud require_once('../../lib/base.php'); // Check if we are a user OC_Util::checkLoggedIn(); OC_Util::checkAppEnabled('contacts'); // Get active address books. This creates a default one if none exists. $addressbooks = OC_Contacts_Addressbook::activeAddressbooks(OC_User::getUser()); // Load the files we need OC_App::setActiveNavigationEntry( 'contacts_index' ); // Load a specific user? $id = isset( $_GET['id'] ) ? $_GET['id'] : null; // sort addressbooks (use contactsort) usort($addressbooks,'contacts_namesort'); $contacts = array(); foreach( $addressbooks as $addressbook ){ $addressbookcontacts = OC_Contacts_VCard::all($addressbook['id']); foreach( $addressbookcontacts as $contact ){ if(is_null($contact['fullname'])){ continue; } $contacts[] = $contact; } } usort($contacts,'contacts_namesort'); $details = array(); if( !is_null($id)/* || count($contacts)*/){ if(is_null($id)) $id = $contacts[0]['id']; $vcard = OC_Contacts_App::getContactVCard($id); $details = OC_Contacts_VCard::structureContact($vcard); } // Include Style and Script OC_Util::addScript('contacts','interface'); OC_Util::addStyle('contacts','styles'); OC_Util::addStyle('contacts','formtastic'); OC_Util::addScript('', 'jquery.multiselect'); OC_Util::addStyle('', 'jquery.multiselect'); $adr_types = OC_Contacts_App::getTypesOfProperty('ADR'); $phone_types = OC_Contacts_App::getTypesOfProperty('TEL'); // Process the template $tmpl = new OC_Template( 'contacts', 'index', 'user' ); $tmpl->assign('adr_types',$adr_types); $tmpl->assign('phone_types',$phone_types); $tmpl->assign('addressbooks', $addressbooks); $tmpl->assign('contacts', $contacts); $tmpl->assign('details', $details ); $tmpl->assign('id',$id); $tmpl->printPage();