예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 /**
  * 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();
 }
예제 #4
0
 /**
  * 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();
 }