Ejemplo n.º 1
0
 /**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }
Ejemplo n.º 3
0
 /**
  * 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;
 }
Ejemplo n.º 4
0
 /**
  * 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());
 }
Ejemplo n.º 5
0
 /**
  * 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);
     }
 }
Ejemplo n.º 6
0
 /**
  * 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));
 }