function search() { ajx_current('empty'); if (!can_manage_contacts(logged_user())) { flash_error(lang("no access permissions")); return; } $search_for = array_var($_POST, 'search_for', false); if ($search_for) { $search_results = SearchableObjects::searchByType($search_for, null, 'Companies', true, 50); $companies = $search_results[0]; if ($companies && count($companies) > 0) { $result = array(); foreach ($companies as $companyResult) { $company = $companyResult['object']; $result[] = array('name' => $company->getName(), 'id' => $company->getId(), 'phone' => $company->getPhoneNumber(), 'email' => $company->getEmail()); } ajx_extra_data(array("results" => $result)); } } }
/** * Execute search * * @param void * @return null */ function searchbytype() { $this->setTemplate('search'); if (active_project() && !logged_user()->isProjectUser(active_project())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } // if $page = array_var($_GET, 'page'); $pageType = array_var($_GET, 'page_type'); $search_for = array_var($_GET, 'search_for'); $manager = array_var($_GET, 'manager'); $objectManagers = array("ProjectWebpages", "ProjectMessages", "MailContents", "ProjectFiles", "ProjectFileRevisions", "ProjectMilestones", "ProjectTasks", "ProjectEvents"); $objectTypes = array(lang('webpages'), lang('messages'), lang('emails'), lang('files'), lang('files'), lang('milestones'), lang('tasks'), lang('events')); $iconTypes = array('webpage', 'message', 'email', 'file', 'file', 'milestone', 'task', 'event'); $search_results = array(); $timeBegin = microtime(true); if (trim($search_for) == '') { $search_results = null; $pagination = null; } else { if (array_var($_GET, 'search_all_projects') != "true" && active_project() instanceof Project) { $projects = active_project()->getAllSubWorkspacesCSV(true); } else { $projects = null; } switch ($manager) { case 'Contacts': case 'Companies': $search_results = $this->searchContacts($search_for, array(), 20, $page); break; case 'Projects': $search_results = $this->searchWorkspaces($search_for, array(), 20, $page); break; case 'Users': $search_results = $this->searchUsers($search_for, array(), 20, $page); break; default: $user_id = $manager == "MailContents" ? logged_user()->getId() : 0; $results = SearchableObjects::searchByType($search_for, $projects, $manager, true, 20, $page, null, $user_id); if (count($results[0]) > 0) { $c = array_search($manager, $objectManagers); $sr = array(); $pagination = $results[1]; $sr['result'] = $results[0]; $sr['pagination'] = $pagination; $sr['type'] = $objectTypes[$c]; $sr['icontype'] = $iconTypes[$c]; $sr['manager'] = $manager; $search_results[] = $sr; } break; } } // if $timeEnd = microtime(true); tpl_assign('search_string', $search_for); tpl_assign('search_results', $search_results); tpl_assign('time', $timeEnd - $timeBegin); tpl_assign('enable_pagination', true); }
function search() { ajx_current('empty'); if (!can_manage_contacts(logged_user())) { flash_error(lang("no access permissions")); return; } $search_for = array_var($_POST, 'search_for', false); if ($search_for) { /*if (active_project() instanceof Project) { $projects = active_project()->getAllSubWorkspacesQuery(false); } else {*/ $projects = null; //} $search_results = SearchableObjects::searchByType($search_for, $projects, 'Contacts', true, 50); $contacts = $search_results[0]; if ($contacts && count($contacts) > 0) { $result = array(); foreach ($contacts as $contactResult) { $contact = $contactResult['object']; $result[] = array('name' => $contact->getFirstname() . ' ' . $contact->getLastname(), 'phone' => $contact->getWPhoneNumber(), 'email' => $contact->getEmail(), 'jobtitle' => $contact->getJobTitle(), 'company' => $contact->getCompany() instanceof Company ? array('id' => $contact->getCompany()->getId(), 'name' => $contact->getCompany()->getName(), 'phone' => $contact->getCompany()->getPhoneNumber(), 'email' => $contact->getCompany()->getEmail()) : array(), 'department' => $contact->getDepartment(), 'id' => $contact->getId()); } ajx_extra_data(array("results" => $result)); } } }