/** * Show advanced search results. * @param $args array * @param $request PKPRequest */ function advancedResults($args, &$request) { $this->validate(); $this->setupTemplate($request, true); $rangeInfo = $this->getRangeInfo('search'); $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO'); $searchJournalId = $request->getUserVar('searchJournal'); if (!empty($searchJournalId)) { $journalDao =& DAORegistry::getDAO('JournalDAO'); $journal =& $journalDao->getById($searchJournalId); $yearRange = $publishedArticleDao->getArticleYearRange($journal->getId()); } else { $journal =& $request->getJournal(); $yearRange = $publishedArticleDao->getArticleYearRange(null); } // Load the keywords array with submitted values $keywords = array(null => ArticleSearch::parseQuery($request->getUserVar('query'))); $keywords[ARTICLE_SEARCH_AUTHOR] = ArticleSearch::parseQuery($request->getUserVar('author')); $keywords[ARTICLE_SEARCH_TITLE] = ArticleSearch::parseQuery($request->getUserVar('title')); $keywords[ARTICLE_SEARCH_DISCIPLINE] = ArticleSearch::parseQuery($request->getUserVar('discipline')); $keywords[ARTICLE_SEARCH_SUBJECT] = ArticleSearch::parseQuery($request->getUserVar('subject')); $keywords[ARTICLE_SEARCH_TYPE] = ArticleSearch::parseQuery($request->getUserVar('type')); $keywords[ARTICLE_SEARCH_COVERAGE] = ArticleSearch::parseQuery($request->getUserVar('coverage')); $keywords[ARTICLE_SEARCH_GALLEY_FILE] = ArticleSearch::parseQuery($request->getUserVar('fullText')); $keywords[ARTICLE_SEARCH_SUPPLEMENTARY_FILE] = ArticleSearch::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 =& ArticleSearch::retrieveResults($journal, $keywords, $fromDate, $toDate, $rangeInfo); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign_by_ref('results', $results); $this->_assignAdvancedSearchParameters($request, $templateMgr, $yearRange); $templateMgr->display('search/searchResults.tpl'); }