/** * Streams to the browser the provided array of objects as a basic Excel document * with headers. if the objects have an associated Map class, then footers will be * added to sum any numeric fields. otherwise no footers are added * * Note that PEAR Spreadsheet_Excel_Writer must be installed * @link http://pear.php.net/package/Spreadsheet_Excel_Writer * * @param Array an array of Phreezable objects, obtained for example, using DataSet->ToObjectArray * @param Phreezer $phreezer is needed to get field maps * @param string (optional) The title of the report */ static function OutputAsExcel(array $objects, Phreezer $phreezer, $reportTitle = "Data Export", $fileName = "export.xls") { require_once 'Spreadsheet/Excel/Writer.php'; // create the workbook and worksheet $workbook = new Spreadsheet_Excel_Writer(); $worksheet = $workbook->addWorksheet("Export"); $BOLD_MED =& $workbook->addFormat(); $BOLD_MED->setSize(16); $BOLD_MED->SetBold(); $BOLD_REG =& $workbook->addFormat(); $BOLD_REG->setSize(11); $BOLD_REG->SetBold(); $NORMAL =& $workbook->addFormat(); $NORMAL->setSize(11); $CURRENCY =& $workbook->addFormat(); $CURRENCY->setNumFormat('0.00'); $CURRENCY->setSize(11); $CURRENCY->setAlign('right'); $worksheet->writeString(0, 0, $reportTitle, $BOLD_MED); // default to no columns $fields = array(); $columns = array(); $is_numeric = array(); $fieldmap_exists = false; // print the headers // while we're looping, also parse the fields so we don't have to do // it repeatedly when looping through data if (isset($objects[0])) { try { // see if there is a fieldmap for this object $fields = $phreezer->GetFieldMaps(get_class($objects[0])); $fieldmap_exists = true; // these are the columns we'll use for enumeration from here on $columns = array_keys($fields); } catch (Exception $ex) { // no fieldmaps exist, so use the reflection class instead $reflect = new ReflectionClass($objects[0]); $publicAttributes = $reflect->getProperties(ReflectionProperty::IS_PUBLIC); $staticAttributes = $reflect->getStaticProperties(); // only include non-static public properties $props = array_diff($publicAttributes, $staticAttributes); foreach ($props as $prop) { $column = $prop->getName(); $columns[] = $column; } } $current_column = 0; foreach ($columns as $column) { // save this so we don't check it every time when looping through data $is_numeric[$column] = $fieldmap_exists ? $fields[$column]->IsNumeric() : false; $worksheet->writeString(2, $current_column, $column, $BOLD_REG); $current_column++; } } $current_row = 3; // loop through all of the data foreach ($objects as $object) { $current_column = 0; foreach ($columns as $column) { if ($fieldmap_exists == false || $is_numeric[$column] == true) { $worksheet->write($current_row, $current_column, $object->{$column}, $NORMAL); } else { $worksheet->writeString($current_row, $current_column, $object->{$column}, $NORMAL); } $current_column++; } $current_row++; } // lastly write to the footer to sum the numeric columns $current_column = 0; foreach ($columns as $column) { if ($is_numeric[$column]) { $columnLetter = ExportUtility::GetColumnLetter($current_column); $formula = "=SUM(" . $columnLetter . "3:" . $columnLetter . ($current_row - 1) . ")"; // notice the @ sign in front because this will fire a deprecated warning due to use of "split" @$worksheet->write($current_row, $current_column, $formula, $BOLD_REG); } $current_column++; } $workbook->send($fileName); // this has errors suppressed due to strict mode @$workbook->close(); }
private function onSearch() { $wildCardCompanyName = ''; $wildCardKeyTechnologies = ''; /* Bail out to prevent an error if the GET string doesn't even contain * a field named 'wildCardString' at all. */ if (!isset($_GET['wildCardString'])) { $this->listByView('No wild card string specified.'); return; } $query = trim($_GET['wildCardString']); /* Set up sorting. */ if ($this->isRequiredIDValid('page', $_GET)) { $currentPage = $_GET['page']; } else { $currentPage = 1; } $searchPager = new SearchPager(CANDIDATES_PER_PAGE, $currentPage, $this->_siteID, $_GET); if ($searchPager->isSortByValid('sortBy', $_GET)) { $sortBy = $_GET['sortBy']; } else { $sortBy = 'name'; } if ($searchPager->isSortDirectionValid('sortDirection', $_GET)) { $sortDirection = $_GET['sortDirection']; } else { $sortDirection = 'ASC'; } $baseURL = CATSUtility::getFilteredGET(array('sortBy', 'sortDirection', 'page'), '&'); $searchPager->setSortByParameters($baseURL, $sortBy, $sortDirection); if (!eval(Hooks::get('CLIENTS_ON_SEARCH_PRE'))) { return; } /* Get our current searching mode. */ $mode = $this->getTrimmedInput('mode', $_GET); /* Execute the search. */ $search = new SearchCompanies($this->_siteID); switch ($mode) { case 'searchByName': $wildCardCompanyName = $query; $rs = $search->byName($query, $sortBy, $sortDirection); break; case 'searchByKeyTechnologies': $wildCardKeyTechnologies = $query; $rs = $search->byKeyTechnologies($query, $sortBy, $sortDirection); break; default: $this->listByView('Invalid search mode.'); return; break; } foreach ($rs as $rowIndex => $row) { if ($row['isHot'] == 1) { $rs[$rowIndex]['linkClass'] = 'jobLinkHot'; } else { $rs[$rowIndex]['linkClass'] = 'jobLinkCold'; } if (!empty($row['ownerFirstName'])) { $rs[$rowIndex]['ownerAbbrName'] = StringUtility::makeInitialName($row['ownerFirstName'], $row['ownerLastName'], false, LAST_NAME_MAXLEN); } else { $rs[$rowIndex]['ownerAbbrName'] = 'None'; } } $companyIDs = implode(',', ResultSetUtility::getColumnValues($rs, 'companyID')); $exportForm = ExportUtility::getForm(DATA_ITEM_COMPANY, $companyIDs, 40, 15); /* Save the search. */ $savedSearches = new SavedSearches($this->_siteID); $savedSearches->add(DATA_ITEM_COMPANY, $query, $_SERVER['REQUEST_URI'], false); $savedSearchRS = $savedSearches->get(DATA_ITEM_COMPANY); $query = urlencode(htmlspecialchars($query)); if (!eval(Hooks::get('CLIENTS_ON_SEARCH_POST'))) { return; } $this->_template->assign('savedSearchRS', $savedSearchRS); $this->_template->assign('active', $this); $this->_template->assign('subActive', 'Search Companies'); $this->_template->assign('exportForm', $exportForm); $this->_template->assign('pager', $searchPager); $this->_template->assign('rs', $rs); $this->_template->assign('isResultsMode', true); $this->_template->assign('wildCardCompanyName', $wildCardCompanyName); $this->_template->assign('wildCardString', $query); $this->_template->assign('wildCardKeyTechnologies', $wildCardKeyTechnologies); $this->_template->assign('mode', $mode); $this->_template->display('./modules/companies/Search.tpl'); }
/** * Streams to the browser the provided array of objects as a basic Excel document * with headers. if the objects have an associated Map class, then footers will be * added to sum any numeric fields. otherwise no footers are added * * Note that PEAR PHPExcel must be installed * @link https://phpexcel.codeplex.com/ * * @param Array an array of Phreezable objects, obtained for example, using DataSet->ToObjectArray * @param Phreezer $phreezer is needed to get field maps * @param string (optional) The title of the report */ static function OutputAsExcel(array $objects, Phreezer $phreezer, $reportTitle = "Data Export", $fileName = "export.xls", $creator = "Phreeze Library") { require_once "PEAR/PHPExcel.php"; // create the workbook and worksheet $workbook = new PHPExcel(); // set workbook properties $workbook->getProperties()->setCreator($creator)->setTitle($fileName); $workbook->setActiveSheetIndex(0); $worksheet = $workbook->getActiveSheet(); $current_column = "A"; $current_row = 1; $worksheet->setCellValue($current_column . $current_row, $reportTitle); $worksheet->getStyle($current_column . $current_row)->getFont()->setBold(true)->setSize(16); $worksheet->getStyle($current_column . $current_row)->getFont()->setName('Arial'); // default to no columns $fields = array(); $columns = array(); $is_numeric = array(); $fieldmap_exists = false; $current_row = 3; // print the headers // while we're looping, also parse the fields so we don't have to do // it repeatedly when looping through data if (isset($objects[0])) { try { // see if there is a fieldmap for this object $fields = $phreezer->GetFieldMaps(get_class($objects[0])); $fieldmap_exists = true; // these are the columns we'll use for enumeration from here on $columns = array_keys($fields); } catch (Exception $ex) { // no fieldmaps exist, so use the reflection class instead $reflect = new ReflectionClass($objects[0]); $publicAttributes = $reflect->getProperties(ReflectionProperty::IS_PUBLIC); $staticAttributes = $reflect->getStaticProperties(); // only include non-static public properties $props = array_diff($publicAttributes, $staticAttributes); foreach ($props as $prop) { $column = $prop->getName(); $columns[] = $column; } } foreach ($columns as $column) { // save this so we don't check it every time when looping through data $is_numeric[$column] = $fieldmap_exists ? $fields[$column]->IsNumeric() : false; $worksheet->setCellValue($current_column . $current_row, $column); $worksheet->getStyle($current_column . $current_row)->getFont()->setBold(true)->setSize(11); $worksheet->getStyle($current_column . $current_row)->getFont()->setName('Arial'); $current_column++; } } $current_row = 4; // loop through all of the data foreach ($objects as $object) { $current_column = "A"; foreach ($columns as $column) { if ($fieldmap_exists == false || $is_numeric[$column] == true) { $worksheet->setCellValue($current_column . $current_row, $object->{$column}); } else { $worksheet->setCellValue($current_column . $current_row, $object->{$column}); } $current_column++; } $current_row++; } // lastly write to the footer to sum the numeric columns $col = 0; foreach ($columns as $column) { if ($is_numeric[$column]) { $columnLetter = ExportUtility::GetColumnLetter($current_column); $formula = "=SUM(" . $columnLetter . "3:" . $columnLetter . ($current_row - 1) . ")"; // notice the @ sign in front because this will fire a deprecated warning due to use of "split" @$worksheet->setCellValue($current_row, $current_column, $formula); $worksheet->getStyle($current_column . $current_row)->getFont()->setBold(true); $worksheet->getStyle($current_column . $current_row)->getFont()->setName('Arial'); } $current_column++; } $workbook->getDefaultStyle()->getFont()->setName('Arial')->setSize(11); $workbook->setActiveSheetIndex(0); $writer = PHPExcel_IOFactory::createWriter($workbook, 'Excel5'); // set headers to excel: header('Content-type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Cache-Control: max-age=0'); $writer->save('php://output'); }
public function onSearch() { $query_jobTitle = ''; $query_companyName = ''; /* Bail out to prevent an error if the GET string doesn't even contain * a field named 'wildCardString' at all. */ if (!isset($_GET['wildCardString'])) { $this->listByView('No wild card string specified.'); return; } $query = trim($_GET['wildCardString']); /* Set up sorting. */ if ($this->isRequiredIDValid('page', $_GET)) { $currentPage = $_GET['page']; } else { $currentPage = 1; } $searchPager = new SearchPager( CANDIDATES_PER_PAGE, $currentPage, $this->_siteID, $_GET ); if ($searchPager->isSortByValid('sortBy', $_GET)) { $sortBy = $_GET['sortBy']; } else { $sortBy = 'title'; } if ($searchPager->isSortDirectionValid('sortDirection', $_GET)) { $sortDirection = $_GET['sortDirection']; } else { $sortDirection = 'ASC'; } $baseURL = CATSUtility::getFilteredGET( array('sortBy', 'sortDirection', 'page'), '&' ); $searchPager->setSortByParameters($baseURL, $sortBy, $sortDirection); /* Get our current searching mode. */ $mode = $this->getTrimmedInput('mode', $_GET); /* Execute the search. */ $search = new SearchJobOrders($this->_siteID); switch ($mode) { case 'searchByJobTitle': $query_jobTitle = $query; $rs = $search->byTitle($query, $sortBy, $sortDirection, false); break; case 'searchByCompanyName': $query_companyName = $query; $rs = $search->byCompanyName($query, $sortBy, $sortDirection, false); break; default: $this->listByView('Invalid search mode.'); return; break; } foreach ($rs as $rowIndex => $row) { /* Convert '00-00-00' dates to empty strings. */ $rs[$rowIndex]['startDate'] = DateUtility::fixZeroDate( $row['startDate'] ); if ($row['isHot'] == 1) { $rs[$rowIndex]['linkClass'] = 'jobLinkHot'; } else { $rs[$rowIndex]['linkClass'] = 'jobLinkCold'; } $rs[$rowIndex]['recruiterAbbrName'] = StringUtility::makeInitialName( $row['recruiterFirstName'], $row['recruiterLastName'], false, LAST_NAME_MAXLEN ); $rs[$rowIndex]['ownerAbbrName'] = StringUtility::makeInitialName( $row['ownerFirstName'], $row['ownerLastName'], false, LAST_NAME_MAXLEN ); } /* Save the search. */ $savedSearches = new SavedSearches($this->_siteID); $savedSearches->add( DATA_ITEM_JOBORDER, $query, $_SERVER['REQUEST_URI'], false ); $savedSearchRS = $savedSearches->get(DATA_ITEM_JOBORDER); $query = urlencode(htmlspecialchars($query)); $jobOderIDs = implode(',', ResultSetUtility::getColumnValues($rs, 'jobOrderID')); $exportForm = ExportUtility::getForm( DATA_ITEM_JOBORDER, $jobOderIDs, 29, 5 ); $this->_template->assign('active', $this); $this->_template->assign('subActive', 'Search Job Orders'); $this->_template->assign('pager', $searchPager); $this->_template->assign('exportForm', $exportForm); $this->_template->assign('wildCardString', $query); $this->_template->assign('wildCardString_jobTitle', $query_jobTitle); $this->_template->assign('wildCardString_companyName', $query_companyName); $this->_template->assign('savedSearchRS', $savedSearchRS); $this->_template->assign('rs', $rs); $this->_template->assign('isResultsMode', true); $this->_template->assign('mode', $mode); if (!eval(Hooks::get('JO_ON_SEARCH'))) return; $this->_template->display('./modules/joborders/Search.php'); }
private function onSearch() { /* Bail out to prevent an error if the GET string doesn't even contain * a field named 'wildCardString' at all. */ if (!isset($_GET['wildCardString'])) { $this->listByView('No wild card string specified.'); return; } $query = trim($_GET['wildCardString']); /* Initialize stored wildcard strings to safe default values. */ $resumeWildCardString = ''; $keySkillsWildCardString = ''; $phoneNumberWildCardString = ''; $fullNameWildCardString = ''; /* Set up sorting. */ if ($this->isRequiredIDValid('page', $_GET)) { $currentPage = $_GET['page']; } else { $currentPage = 1; } $searchPager = new SearchPager(CANDIDATES_PER_PAGE, $currentPage, $this->_siteID); if ($searchPager->isSortByValid('sortBy', $_GET)) { $sortBy = $_GET['sortBy']; } else { $sortBy = 'lastName'; } if ($searchPager->isSortDirectionValid('sortDirection', $_GET)) { $sortDirection = $_GET['sortDirection']; } else { $sortDirection = 'ASC'; } $baseURL = CATSUtility::getFilteredGET(array('sortBy', 'sortDirection', 'page'), '&'); $searchPager->setSortByParameters($baseURL, $sortBy, $sortDirection); $candidates = new Candidates($this->_siteID); /* Get our current searching mode. */ $mode = $this->getTrimmedInput('mode', $_GET); /* Execute the search. */ $search = new SearchCandidates($this->_siteID); switch ($mode) { case 'searchByFullName': $rs = $search->byFullName($query, $sortBy, $sortDirection); foreach ($rs as $rowIndex => $row) { if (!empty($row['ownerFirstName'])) { $rs[$rowIndex]['ownerAbbrName'] = StringUtility::makeInitialName($row['ownerFirstName'], $row['ownerLastName'], false, LAST_NAME_MAXLEN); } else { $rs[$rowIndex]['ownerAbbrName'] = 'None'; } $rsResume = $candidates->getResumes($row['candidateID']); if (isset($rsResume[0])) { $rs[$rowIndex]['resumeID'] = $rsResume[0]['attachmentID']; } } $isResumeMode = false; $fullNameWildCardString = $query; break; case 'searchByKeySkills': $rs = $search->byKeySkills($query, $sortBy, $sortDirection); foreach ($rs as $rowIndex => $row) { if (!empty($row['ownerFirstName'])) { $rs[$rowIndex]['ownerAbbrName'] = StringUtility::makeInitialName($row['ownerFirstName'], $row['ownerLastName'], false, LAST_NAME_MAXLEN); } else { $rs[$rowIndex]['ownerAbbrName'] = 'None'; } $rsResume = $candidates->getResumes($row['candidateID']); if (isset($rsResume[0])) { $rs[$rowIndex]['resumeID'] = $rsResume[0]['attachmentID']; } } $isResumeMode = false; $keySkillsWildCardString = $query; break; case 'searchByResume': $searchPager = new SearchByResumePager(20, $currentPage, $this->_siteID, $query, $sortBy, $sortDirection); $baseURL = 'm=candidates&a=search&getback=getback&mode=searchByResume&wildCardString=' . urlencode($query) . '&searchByResume=Search'; $searchPager->setSortByParameters($baseURL, $sortBy, $sortDirection); $rs = $searchPager->getPage(); $currentPage = $searchPager->getCurrentPage(); $totalPages = $searchPager->getTotalPages(); $pageStart = $searchPager->getThisPageStartRow() + 1; if ($searchPager->getThisPageStartRow() + 20 <= $searchPager->getTotalRows()) { $pageEnd = $searchPager->getThisPageStartRow() + 20; } else { $pageEnd = $searchPager->getTotalRows(); } foreach ($rs as $rowIndex => $row) { $rs[$rowIndex]['excerpt'] = SearchUtility::searchExcerpt($query, $row['text']); if (!empty($row['ownerFirstName'])) { $rs[$rowIndex]['ownerAbbrName'] = StringUtility::makeInitialName($row['ownerFirstName'], $row['ownerLastName'], false, LAST_NAME_MAXLEN); } else { $rs[$rowIndex]['ownerAbbrName'] = 'None'; } } $isResumeMode = true; $this->_template->assign('active', $this); $this->_template->assign('currentPage', $currentPage); $this->_template->assign('pageStart', $pageStart); $this->_template->assign('totalResults', $searchPager->getTotalRows()); $this->_template->assign('pageEnd', $pageEnd); $this->_template->assign('totalPages', $totalPages); $resumeWildCardString = $query; break; case 'phoneNumber': $rs = $search->byPhone($query, $sortBy, $sortDirection); foreach ($rs as $rowIndex => $row) { if (!empty($row['ownerFirstName'])) { $rs[$rowIndex]['ownerAbbrName'] = StringUtility::makeInitialName($row['ownerFirstName'], $row['ownerLastName'], false, LAST_NAME_MAXLEN); } else { $rs[$rowIndex]['ownerAbbrName'] = 'None'; } $rsResume = $candidates->getResumes($row['candidateID']); if (isset($rsResume[0])) { $rs[$rowIndex]['resumeID'] = $rsResume[0]['attachmentID']; } } $isResumeMode = false; $phoneNumberWildCardString = $query; break; default: $this->listByView('Invalid search mode.'); return; break; } $candidateIDs = implode(',', ResultSetUtility::getColumnValues($rs, 'candidateID')); $exportForm = ExportUtility::getForm(DATA_ITEM_CANDIDATE, $candidateIDs, 32, 9); if (!eval(Hooks::get('CANDIDATE_ON_SEARCH'))) { return; } /* Save the search. */ $savedSearches = new SavedSearches($this->_siteID); $savedSearches->add(DATA_ITEM_CANDIDATE, $query, $_SERVER['REQUEST_URI'], false); $savedSearchRS = $savedSearches->get(DATA_ITEM_CANDIDATE); $this->_template->assign('savedSearchRS', $savedSearchRS); $this->_template->assign('exportForm', $exportForm); $this->_template->assign('active', $this); $this->_template->assign('rs', $rs); $this->_template->assign('pager', $searchPager); $this->_template->assign('isResultsMode', true); $this->_template->assign('isResumeMode', $isResumeMode); $this->_template->assign('wildCardString', $query); $this->_template->assign('resumeWildCardString', $resumeWildCardString); $this->_template->assign('keySkillsWildCardString', $keySkillsWildCardString); $this->_template->assign('fullNameWildCardString', $fullNameWildCardString); $this->_template->assign('phoneNumberWildCardString', $phoneNumberWildCardString); $this->_template->assign('mode', $mode); $this->_template->display('./modules/candidates/Search.tpl'); }
public function onSearch($objSearchDS=null) { /* Bail out to prevent an error if the GET string doesn't even contain * a field named 'wildCardString' at all. */ $arrInput=$_GET; if(!is_null($objSearchDS)) { $arrInput=$objSearchDS->getAsArray(); } if (!isset($arrInput['wildCardString'])) { $this->listByView('No wild card string specified.'); return; } $query = trim($arrInput['wildCardString']); /* Initialize stored wildcard strings to safe default values. */ $resumeWildCardString = ''; $keySkillsWildCardString = ''; $phoneNumberWildCardString = ''; $fullNameWildCardString = ''; /* Set up sorting. */ if ($this->isRequiredIDValid('page', $arrInput)) { $currentPage = $arrInput['page']; } else { $currentPage = 1; } $searchPager = new SearchPager( CANDIDATES_PER_PAGE, $currentPage, $this->_siteID ); if ($searchPager->isSortByValid('sortBy', $arrInput)) { $sortBy = $arrInput['sortBy']; } else { $sortBy = 'lastName'; } if ($searchPager->isSortDirectionValid('sortDirection', $arrInput)) { $sortDirection = $arrInput['sortDirection']; } else { $sortDirection = 'ASC'; } $_siteID = $_SESSION['CATS']->getSiteID();; $_db = DatabaseConnection::getInstance(); $sql="Select * from settings where setting='filtergrouping' and site_id='{$_siteID}'"; $arrData=$_db->getAssoc($sql); $isFilterGrouping=false; if(isset($arrData["value"]) && $arrData["value"]>0) { $isFilterGrouping=true; } $baseURL = CATSUtility::getFilteredGET( array('sortBy', 'sortDirection', 'page'), '&' ); $searchPager->setSortByParameters($baseURL, $sortBy, $sortDirection); $candidates = new Candidates($this->_siteID); /* Get our current searching mode. */ $mode = $this->getTrimmedInput('mode', $arrInput); /* Execute the search. */ $search = new SearchCandidates($this->_siteID); switch ($mode) { case 'searchByFullName': $rs = $search->byFullName($query, $sortBy, $sortDirection); foreach ($rs as $rowIndex => $row) { if (!empty($row['ownerFirstName'])) { $rs[$rowIndex]['ownerAbbrName'] = StringUtility::makeInitialName( $row['ownerFirstName'], $row['ownerLastName'], false, LAST_NAME_MAXLEN ); } else { $rs[$rowIndex]['ownerAbbrName'] = 'None'; } $rsResume = $candidates->getResumes($row['candidateID']); if (isset($rsResume[0])) { $rs[$rowIndex]['resumeID'] = $rsResume[0]['attachmentID']; } } $isResumeMode = false; $fullNameWildCardString = $query; break; case 'searchByKeySkills': $rs = $search->byKeySkills($query, $sortBy, $sortDirection); foreach ($rs as $rowIndex => $row) { if (!empty($row['ownerFirstName'])) { $rs[$rowIndex]['ownerAbbrName'] = StringUtility::makeInitialName( $row['ownerFirstName'], $row['ownerLastName'], false, LAST_NAME_MAXLEN ); } else { $rs[$rowIndex]['ownerAbbrName'] = 'None'; } $rsResume = $candidates->getResumes($row['candidateID']); if (isset($rsResume[0])) { $rs[$rowIndex]['resumeID'] = $rsResume[0]['attachmentID']; } } $isResumeMode = false; $keySkillsWildCardString = $query; break; case 'searchByResume': $searchPager = new SearchByResumePager( 20, $currentPage, $this->_siteID, $query, $sortBy, $sortDirection ); $baseURL = 'm=candidates&a=search&getback=getback&mode=searchByResume&wildCardString=' . urlencode($query) . '&searchByResume=Search'; if(isset($_REQUEST["fldfilter"])) foreach($_REQUEST["fldfilter"] as $ind=>$filter) { $condition=$_REQUEST["condition"][$ind]; $data=$_REQUEST["data"][$ind]; $boolean=$_REQUEST["boolean"][$ind]; $baseURL=$baseURL."&fldfilter[{$ind}]={$filter}&condition[{$ind}]={$condition}"; $baseURL=$baseURL."&data[{$ind}]={$data}&boolean[{$ind}]={$boolean}"; if($isFilterGrouping) { $group=$_REQUEST["group"][$ind]; $baseURL=$baseURL."&group[{$ind}]={$group}"; } } $searchPager->setSortByParameters( $baseURL, $sortBy, $sortDirection ); $rs = $searchPager->getPage(); $currentPage = $searchPager->getCurrentPage(); $totalPages = $searchPager->getTotalPages(); $pageStart = $searchPager->getThisPageStartRow() + 1; if (($searchPager->getThisPageStartRow() + 20) <= $searchPager->getTotalRows()) { $pageEnd = $searchPager->getThisPageStartRow() + 20; } else { $pageEnd = $searchPager->getTotalRows(); } foreach ($rs as $rowIndex => $row) { $rs[$rowIndex]['excerpt'] = SearchUtility::searchExcerpt( $query, $row['text'] ); if (!empty($row['ownerFirstName'])) { $rs[$rowIndex]['ownerAbbrName'] = StringUtility::makeInitialName( $row['ownerFirstName'], $row['ownerLastName'], false, LAST_NAME_MAXLEN ); } else { $rs[$rowIndex]['ownerAbbrName'] = 'None'; } } $isResumeMode = true; $this->_template->assign('active', $this); $this->_template->assign('currentPage', $currentPage); $this->_template->assign('pageStart', $pageStart); $this->_template->assign('totalResults', $searchPager->getTotalRows()); $this->_template->assign('pageEnd', $pageEnd); $this->_template->assign('totalPages', $totalPages); $resumeWildCardString = $query; break; case 'phoneNumber': $rs = $search->byPhone($query, $sortBy, $sortDirection); foreach ($rs as $rowIndex => $row) { if (!empty($row['ownerFirstName'])) { $rs[$rowIndex]['ownerAbbrName'] = StringUtility::makeInitialName( $row['ownerFirstName'], $row['ownerLastName'], false, LAST_NAME_MAXLEN ); } else { $rs[$rowIndex]['ownerAbbrName'] = 'None'; } $rsResume = $candidates->getResumes($row['candidateID']); if (isset($rsResume[0])) { $rs[$rowIndex]['resumeID'] = $rsResume[0]['attachmentID']; } } $isResumeMode = false; $phoneNumberWildCardString = $query; break; default: $this->listByView('Invalid search mode.'); return; break; } /** * if request comes from program return the id else process display */ if(!is_null($objSearchDS)) { return ResultSetUtility::getColumnValues($rs, 'candidateID'); } $candidateIDs = implode(',', ResultSetUtility::getColumnValues($rs, 'candidateID')); $exportForm = ExportUtility::getForm( DATA_ITEM_CANDIDATE, $candidateIDs, 32, 9 ); if (!eval(Hooks::get('CANDIDATE_ON_SEARCH'))) return; /* Save the search. */ $savedSearches = new SavedSearches($this->_siteID); $savedSearches->add( DATA_ITEM_CANDIDATE, $query, $_SERVER['REQUEST_URI'], false ); $savedSearchRS = $savedSearches->get(DATA_ITEM_CANDIDATE); $this->_template->assign('savedSearchRS', $savedSearchRS); $this->_template->assign('exportForm', $exportForm); $this->_template->assign('active', $this); $this->_template->assign('rs', $rs); $this->_template->assign('pager', $searchPager); $this->_template->assign('isResultsMode', true); $this->_template->assign('isResumeMode', $isResumeMode); $this->_template->assign('wildCardString', $query); $this->_template->assign('resumeWildCardString', $resumeWildCardString); $this->_template->assign('keySkillsWildCardString', $keySkillsWildCardString); $this->_template->assign('fullNameWildCardString', $fullNameWildCardString); $this->_template->assign('phoneNumberWildCardString', $phoneNumberWildCardString); $this->_template->assign('mode', $mode); $this->_template->display('./modules/candidates/Search.php'); }