function getSearchFilters($request)
{
$searchFilters = array('query' => $request->getUserVar('query'), 'searchJournal' => $request->getUserVar('searchJournal'), 'abstract' => $request->getUserVar('abstract'), 'authors' => $request->getUserVar('authors'), 'title' => $request->getUserVar('title'), 'galleyFullText' => $request->getUserVar('galleyFullText'), 'discipline' => $request->getUserVar('discipline'), 'subject' => $request->getUserVar('subject'), 'type' => $request->getUserVar('type'), 'coverage' => $request->getUserVar('coverage'), 'indexTerms' => $request->getUserVar('indexTerms'));
// Is this a simplified query from the navigation
// block plugin?
$simpleQuery = $request->getUserVar('simpleQuery');
if (!empty($simpleQuery)) {
// In the case of a simplified query we get the
// filter type from a drop-down.
$searchType = $request->getUserVar('searchField');
if (array_key_exists($searchType, $searchFilters)) {
$searchFilters[$searchType] = $simpleQuery;
}
}
// Publishing dates.
$fromDate = $request->getUserDateVar('dateFrom', 1, 1);
$searchFilters['fromDate'] = is_null($fromDate) ? null : date('Y-m-d H:i:s', $fromDate);
$toDate = $request->getUserDateVar('dateTo', 32, 12, null, 23, 59, 59);
$searchFilters['toDate'] = is_null($toDate) ? null : date('Y-m-d H:i:s', $toDate);
// Instantiate the journal.
$journal = $request->getJournal();
$siteSearch = !(bool) $journal;
if ($siteSearch) {
$journalDao = DAORegistry::getDAO('JournalDAO');
/* @var $journalDao JournalDAO */
if (!empty($searchFilters['searchJournal'])) {
$journal = $journalDao->getById($searchFilters['searchJournal']);
} elseif (array_key_exists('journalTitle', $request->getUserVars())) {
$journals = $journalDao->getTitles(false);
while ($journal = $journals->next()) {
if (in_array($request->getUserVar('journalTitle'), (array) $journal->getTitle(null))) {
break;
}
}
}
}
$searchFilters['searchJournal'] = $journal;
$searchFilters['siteSearch'] = $siteSearch;
return $searchFilters;
}