/** * Show advanced search results. * @param $args array * @param $request PKPRequest */ function advancedResults($args, &$request) { parent::validate(); $this->setupTemplate($request, true); $rangeInfo = $this->getRangeInfo($request, 'search'); $publishedPaperDao = DAORegistry::getDAO('PublishedPaperDAO'); $searchConferenceId = $request->getUserVar('searchConference'); if (!empty($searchConferenceId)) { $conferenceDao = DAORegistry::getDAO('ConferenceDAO'); $conference =& $conferenceDao->getById($searchConferenceId); $yearRange = $publishedPaperDao->getPaperYearRange($conference->getId()); } else { $conference =& $request->getConference(); $yearRange = $publishedPaperDao->getPaperYearRange(null); } // Load the keywords array with submitted values $keywords = array(null => PaperSearch::parseQuery($request->getUserVar('query'))); $keywords[PAPER_SEARCH_AUTHOR] = PaperSearch::parseQuery($request->getUserVar('author')); $keywords[PAPER_SEARCH_TITLE] = PaperSearch::parseQuery($request->getUserVar('title')); $keywords[PAPER_SEARCH_DISCIPLINE] = PaperSearch::parseQuery($request->getUserVar('discipline')); $keywords[PAPER_SEARCH_SUBJECT] = PaperSearch::parseQuery($request->getUserVar('subject')); $keywords[PAPER_SEARCH_TYPE] = PaperSearch::parseQuery($request->getUserVar('type')); $keywords[PAPER_SEARCH_COVERAGE] = PaperSearch::parseQuery($request->getUserVar('coverage')); $keywords[PAPER_SEARCH_GALLEY_FILE] = PaperSearch::parseQuery($request->getUserVar('fullText')); $keywords[PAPER_SEARCH_SUPPLEMENTARY_FILE] = PaperSearch::parseQuery($request->getUserVar('supplementaryFiles')); $fromDate = $request->getUserDateVar('dateFrom', 1, 1); if ($fromDate !== null) { $fromDate = date('Y-m-d H:i:s', $fromDate); } $toDate = $request->getUserDateVar('dateTo', 32, 12, null, 23, 59, 59); if ($toDate !== null) { $toDate = date('Y-m-d H:i:s', $toDate); } $results =& PaperSearch::retrieveResults($conference, $keywords, $fromDate, $toDate, $rangeInfo); $templateMgr =& TemplateManager::getManager($request); $templateMgr->setCacheability(CACHEABILITY_NO_STORE); $templateMgr->assign_by_ref('results', $results); $this->_assignAdvancedSearchParameters($request, $templateMgr, $yearRange); $templateMgr->display('search/searchResults.tpl'); }