/** * 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; }
/** * 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(); }
/** * 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; }
/** * 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; }
/** * 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; }