/** * Initialize the search object used for finding recommendations. * * @return void */ protected function initSearchObject() { // Build a new search object: $this->searchObject = $this->resultsManager->get($this->searchClassId); $this->searchObject->getOptions()->spellcheckEnabled(false); $this->searchObject->getParams()->recommendationsEnabled(false); }
/** * Get search parameters * * @return string of params */ public function getSearchParams() { // Get search parameters and return them minus the leading ?: $str = substr($this->searchObject->getUrlQuery()->getParams(false), 1); // Pass through hidden filters: $options = $this->searchObject->getOptions(); if (is_callable([$options, 'getHiddenFilters'])) { foreach ($options->getHiddenFilters() as $hf) { $str .= '&' . urlencode('hf[]') . '=' . urlencode($hf); } } return $str; }
/** * Turns facet information into an alphabetical list. * * @param \VuFind\Search\Base\Results $results Search result object * @param string $field Facet field to sort * @param array $list Facet value list extract from * the search result object's getFacetList method * @param array $searchRoute Route to use to generate * search URLs for individual facet values * * @return array Associative URL => description array sorted by description */ public function __invoke($results, $field, $list, $searchRoute) { $facets = []; // avoid limit on URL $results->getParams()->setLimit($results->getOptions()->getDefaultLimit()); $urlHelper = $this->getView()->plugin('url'); foreach ($list as $value) { $url = $urlHelper($searchRoute) . $results->getUrlQuery()->addFacet($field, $value['value']); $facets[$url] = $value['displayText']; } natcasesort($facets); return $facets; }
/** * Store the URL of the provided search (if appropriate). * * @param \VuFind\Search\Base\Results $results Search results object * * @return void */ protected function rememberSearch($results) { // Only save search URL if the property tells us to... if ($this->rememberSearch) { $searchUrl = $this->url()->fromRoute($results->getOptions()->getSearchAction()) . $results->getUrlQuery()->getParams(false); $this->getSearchMemory()->rememberSearch($searchUrl); } // Always save search parameters, since these are namespaced by search // class ID. $this->getSearchMemory()->rememberParams($results->getParams()); }
/** * Store the URL of the provided search (if appropriate). * * @param \VuFind\Search\Base\Results $results Search results object * * @return void */ protected function rememberSearch($results) { if ($this->rememberSearch) { $searchUrl = $this->url()->fromRoute($results->getOptions()->getSearchAction()) . $results->getUrlQuery()->getParams(false); $this->getSearchMemory()->rememberSearch($searchUrl); } }
/** * Update the remembered "last search" in the session. * * @param \VuFind\Search\Base\Results $search Search object to remember. * * @return void */ protected function rememberSearch($search) { $baseUrl = $this->getController()->url()->fromRoute($search->getOptions()->getSearchAction()); $this->getController()->getSearchMemory()->rememberSearch($baseUrl . $search->getUrlQuery()->getParams(false)); }