Exemplo n.º 1
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.
     $view = parent::resultsAction();
     $view->myLibs = $this->getUsersHomeLibraries();
     $view->config = $this->getConfig();
     return $view;
 }
Exemplo n.º 2
0
 /**
  * Get results manager
  * If target is extended, get a customized manager
  *
  * @return    VuFindSearchResultsPluginManager|SwissbibSearchResultsPluginManager
  */
 protected function getResultsManager()
 {
     if (!isset($this->extendedTargets)) {
         $mainConfig = $this->getServiceLocator()->get('Vufind\\Config')->get('config');
         $extendedTargetsSearchClassList = $mainConfig->SwissbibSearchExtensions->extendedTargets;
         $this->extendedTargets = array_map('trim', explode(',', $extendedTargetsSearchClassList));
     }
     if (in_array($this->searchClassId, $this->extendedTargets)) {
         return $this->getServiceLocator()->get('Swissbib\\SearchResultsPluginManager');
     }
     return parent::getResultsManager();
 }
Exemplo n.º 3
0
 /**
  * Either assign the requested search object to the view or display a flash
  * message indicating why the operation failed.
  *
  * @param string $searchId ID value of a saved advanced search.
  *
  * @return bool|object     Restored search object if found, false otherwise.
  */
 protected function restoreAdvancedSearch($searchId)
 {
     $savedSearch = parent::restoreAdvancedSearch($searchId);
     if ($savedSearch) {
         if ($filter = $savedSearch->getParams()->getSpatialDateRangeFilter(true)) {
             $req = new \Zend\Stdlib\Parameters();
             $req->set('filter', [$filter['field'] . ':"' . $filter['value'] . '"']);
             if (isset($filter['type'])) {
                 $req->set('search_sdaterange_mvtype', $filter['type']);
             }
             $savedSearch->getParams()->initSpatialDateRangeFilter($req);
         }
     }
     return $savedSearch;
 }
Exemplo n.º 4
0
 /**
  * Results action.
  *
  * @return mixed
  */
 public function resultsAction()
 {
     if ($this->getRequest()->getQuery()->get('combined')) {
         $this->saveToHistory = false;
     }
     $this->initCombinedViewFilters();
     $view = parent::resultsAction();
     $view->browse = false;
     $this->initSavedTabs();
     return $view;
 }
Exemplo n.º 5
0
 /**
  * Sends search history, alert schedules for saved searches and user's
  * email address to view.
  *
  * @return mixed
  */
 public function historyAction()
 {
     $view = parent::historyAction();
     $user = $this->getUser();
     if ($user) {
         $view->alertemail = $user->email;
     }
     // Retrieve saved searches
     $search = $this->getTable('Search');
     $savedsearches = $search->getSavedSearches(is_object($user) ? $user->id : null);
     $schedule = [];
     foreach ($savedsearches as $current) {
         $minSO = $current->getSearchObject(true);
         // Only Solr searches allowed
         if ($minSO->cl !== 'Solr') {
             continue;
         }
         $minSO = $minSO->deminify($this->getResultsManager());
         $schedule[$minSO->getSearchId()] = $current->finna_schedule;
     }
     $view->schedule = $schedule;
     return $view;
 }