SearchHandler::search PHP Method

    function search($args, $request)
    {
        $this->validate(null, $request);
        // Get and transform active filters.
        $articleSearch = new ArticleSearch();
        $searchFilters = $articleSearch->getSearchFilters($request);
        $keywords = $articleSearch->getKeywordsFromSearchFilters($searchFilters);
        // Get the range info.
        $rangeInfo = $this->getRangeInfo($request, 'search');
        // Retrieve results.
        $error = '';
        $results = $articleSearch->retrieveResults($request, $searchFilters['searchJournal'], $keywords, $error, $searchFilters['fromDate'], $searchFilters['toDate'], $rangeInfo);
        // Prepare and display the search template.
        $this->setupTemplate($request);
        $templateMgr = TemplateManager::getManager($request);
        $templateMgr->setCacheability(CACHEABILITY_NO_STORE);
        // Result set ordering options.
        $orderByOptions = $articleSearch->getResultSetOrderingOptions($request);
        $templateMgr->assign('searchResultOrderOptions', $orderByOptions);
        $orderDirOptions = $articleSearch->getResultSetOrderingDirectionOptions();
        $templateMgr->assign('searchResultOrderDirOptions', $orderDirOptions);
        // Result set ordering selection.
        list($orderBy, $orderDir) = $articleSearch->getResultSetOrdering($request);
        $templateMgr->assign('orderBy', $orderBy);
        $templateMgr->assign('orderDir', $orderDir);
        // Similar documents.
        $templateMgr->assign('simDocsEnabled', true);
        // Result set display.
        $this->_assignSearchFilters($request, $templateMgr, $searchFilters);
        $templateMgr->assign('results', $results);
        $templateMgr->assign('error', $error);
        $templateMgr->display('frontend/pages/search.tpl');
    }