/** * Search action -- call standard results action * * @return mixed */ public function searchAction() { if (!$this->isAvailable()) { throw new \Exception('MetaLib is not enabled'); } $query = $this->getRequest()->getQuery(); if ($query->get('ajax') || $query->get('view') == 'rss') { $view = parent::resultsAction(); } else { $configLoader = $this->getServiceLocator()->get('VuFind\\Config'); $options = new Options($configLoader); $params = new Params($options, $configLoader); $params->initFromRequest($query); list($isIRD, $set) = $this->getMetaLibSet($this->getRequest()->getQuery()->get('set')); if ($irds = $this->getMetaLibIrds($set)) { $params->setIrds($irds); } $results = new Results($params); $results = Factory::initUrlQueryHelper($results, $this->getServiceLocator()); $view = $this->createViewModel(); $view->qs = $this->getRequest()->getUriString(); $view->params = $params; $view->results = $results; $view->disablePiwik = true; $view = $this->initSets($view, $params->getQuery()); $view->browseDatabase = $this->isBrowseDatabaseAvailable(); } $this->initSavedTabs(); return $view; }
/** * Search action -- call standard results action * * @return mixed */ public function searchAction() { if (!$this->isAvailable()) { throw new \Exception('MetaLib is not enabled'); } $query = $this->getRequest()->getQuery(); if ($query->get('ajax') || $query->get('view') == 'rss') { $view = parent::resultsAction(); } else { $metalib = $this->getResultsManager()->get($this->searchClassId); $params = $metalib->getParams(); $params->initFromRequest($this->getRequest()->getQuery()); list($isIRD, $set) = $this->getMetaLibSet($params->getMetaLibSearchSet()); if ($irds = $this->getMetaLibIrds($set)) { $params->setIrds($irds); } $view = $this->createViewModel(); $view->qs = $this->getRequest()->getUriString(); $view->params = $params; $view->results = $metalib; $view->disablePiwik = true; $view = $this->initSets($view, $params->getQuery()); $view->browseDatabase = $this->isBrowseDatabaseAvailable(); } $this->initSavedTabs(); return $view; }
/** * Results action. * * @return mixed */ public function resultsAction() { // Special case -- redirect tag searches. $tag = $this->params()->fromQuery('tag'); if (!empty($tag)) { $query = $this->getRequest()->getQuery(); $query->set('lookfor', $tag); $query->set('type', 'tag'); } if ($this->params()->fromQuery('type') == 'tag') { return $this->forwardTo('Tag', 'Home'); } // Default case -- standard behavior. return parent::resultsAction(); }
/** * Results action. * * @return mixed */ public function resultsAction() { // Special case -- redirect tag searches. $tag = $this->params()->fromQuery('tag'); if (!empty($tag)) { $query = $this->getRequest()->getQuery(); $query->set('lookfor', $tag); $query->set('type', 'tag'); } if ($this->params()->fromQuery('type') == 'tag') { // Because we're coming in from a search, we want to do a fuzzy // tag search, not an exact search like we would when linking to a // specific tag name. $query = $this->getRequest()->getQuery()->set('fuzzy', 'true'); return $this->forwardTo('Tag', 'Home'); } // Default case -- standard behavior. return parent::resultsAction(); }