/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $this->searchIni = $this->facetsIni = 'Pazpar2'; $this->limitOptions = [$this->defaultLimit]; // Load source settings $searchSettings = $configLoader->get($this->searchIni); if (isset($searchSettings->IndexSources) && !empty($searchSettings->IndexSources)) { foreach ($searchSettings->IndexSources as $k => $v) { $this->shards[$k] = $v; } // If we have a default from the configuration, use that... if (isset($searchSettings->SourcePreferences->defaultChecked) && !empty($searchSettings->SourcePreferences->defaultChecked)) { $defaultChecked = is_object($searchSettings->SourcePreferences->defaultChecked) ? $searchSettings->SourcePreferences->defaultChecked->toArray() : [$searchSettings->SourcePreferences->defaultChecked]; foreach ($defaultChecked as $current) { $this->defaultSelectedShards[] = $current; } } else { // If no default is configured, use all sources... $this->defaultSelectedShards = array_keys($this->shards); } // Apply checkbox visibility setting if applicable: if (isset($searchSettings->SourcePreferences->showCheckboxes)) { $this->visibleShardCheckboxes = $searchSettings->SourcePreferences->showCheckboxes; } } }
/** * Constructor * * @return void */ public function __construct() { $this->searchIni = $this->facetsIni = 'WorldCat'; parent::__construct(); // Load the configuration file: $searchSettings = ConfigReader::getConfig($this->searchIni); // Search handler setup: $this->defaultHandler = 'srw.kw'; if (isset($searchSettings->Basic_Searches)) { foreach ($searchSettings->Basic_Searches as $key => $value) { $this->basicHandlers[$key] = $value; } } if (isset($searchSettings->Advanced_Searches)) { foreach ($searchSettings->Advanced_Searches as $key => $value) { $this->advancedHandlers[$key] = $value; } } // Load sort preferences: if (isset($searchSettings->Sorting)) { foreach ($searchSettings->Sorting as $key => $value) { $this->sortOptions[$key] = $value; } } if (isset($searchSettings->General->default_sort)) { $this->defaultSort = $searchSettings->General->default_sort; } if (isset($searchSettings->DefaultSortingByType) && count($searchSettings->DefaultSortingByType) > 0) { foreach ($searchSettings->DefaultSortingByType as $key => $val) { $this->defaultSortByHandler[$key] = $val; } } }
/** * Constructor * * @return void */ public function __construct() { parent::__construct(); $this->basicHandlers = array('tags' => 'Tag'); $this->defaultSort = 'title'; $this->sortOptions = array('title' => 'sort_title', 'author' => 'sort_author', 'year DESC' => 'sort_year', 'year' => 'sort_year asc'); }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $this->searchIni = $this->facetsIni = 'EIT'; // Load the configuration file: $searchSettings = $configLoader->get($this->searchIni); if (isset($searchSettings->Basic_Searches)) { foreach ($searchSettings->Basic_Searches as $key => $value) { $this->basicHandlers[$key] = $value; } } if (isset($searchSettings->Advanced_Searches)) { foreach ($searchSettings->Advanced_Searches as $key => $value) { $this->advancedHandlers[$key] = $value; } } // Load sort preferences: if (isset($searchSettings->Sorting)) { foreach ($searchSettings->Sorting as $key => $value) { $this->sortOptions[$key] = $value; } } if (isset($searchSettings->General->default_sort)) { $this->defaultSort = $searchSettings->General->default_sort; } if (isset($searchSettings->DefaultSortingByType) && count($searchSettings->DefaultSortingByType) > 0) { foreach ($searchSettings->DefaultSortingByType as $key => $val) { $this->defaultSortByHandler[$key] = $val; } } }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $this->basicHandlers = ['tags' => 'Tag']; $this->defaultSort = 'title'; $this->sortOptions = ['title' => 'sort_title', 'author' => 'sort_author', 'year DESC' => 'sort_year', 'year' => 'sort_year asc']; }
/** * Constructor * * @return void */ public function __construct() { $this->searchIni = $this->facetsIni = 'Summon'; parent::__construct(); // Load facet preferences: $facetSettings = ConfigReader::getConfig($this->facetsIni); if (isset($facetSettings->Advanced_Settings->translated_facets) && count($facetSettings->Advanced_Facet_Settings->translated_facets) > 0) { $list = $facetSettings->Advanced_Facet_Settings->translated_facets; foreach ($list as $c) { $this->translatedFacets[] = $c; } } if (isset($facetSettings->Advanced_Facet_Settings->special_facets)) { $this->specialAdvancedFacets = $facetSettings->Advanced_Facet_Settings->special_facets; } // Load the search configuration file: $searchSettings = ConfigReader::getConfig($this->searchIni); // Set up highlighting preference if (isset($searchSettings->General->highlighting)) { $this->highlight = $searchSettings->General->highlighting; } // Set up spelling preference if (isset($searchSettings->Spelling->enabled)) { $this->spellcheck = $searchSettings->Spelling->enabled; } // Load search preferences: if (isset($searchSettings->General->retain_filters_by_default)) { $this->retainFiltersByDefault = $searchSettings->General->retain_filters_by_default; } if (isset($searchSettings->General->result_limit)) { $this->resultLimit = $searchSettings->General->result_limit; } // Search handler setup: if (isset($searchSettings->Basic_Searches)) { foreach ($searchSettings->Basic_Searches as $key => $value) { $this->basicHandlers[$key] = $value; } } if (isset($searchSettings->Advanced_Searches)) { foreach ($searchSettings->Advanced_Searches as $key => $value) { $this->advancedHandlers[$key] = $value; } } // Load sort preferences: if (isset($searchSettings->Sorting)) { foreach ($searchSettings->Sorting as $key => $value) { $this->sortOptions[$key] = $value; } } if (isset($searchSettings->General->default_sort)) { $this->defaultSort = $searchSettings->General->default_sort; } if (isset($searchSettings->DefaultSortingByType) && count($searchSettings->DefaultSortingByType) > 0) { foreach ($searchSettings->DefaultSortingByType as $key => $val) { $this->defaultSortByHandler[$key] = $val; } } }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); // Turn on first/last navigation if configured: $config = $configLoader->get('config'); if (isset($config->Record->first_last_navigation) && $config->Record->first_last_navigation) { $this->firstlastNavigation = true; } }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { $this->searchIni = $this->facetsIni = 'LibGuides'; parent::__construct($configLoader); $searchSettings = $configLoader->get($this->searchIni); if (isset($searchSettings->General->default_limit)) { $this->defaultLimit = $searchSettings->General->default_limit; } if (isset($searchSettings->General->limit_options)) { $this->limitOptions = explode(",", $searchSettings->General->limit_options); } }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $this->defaultSort = 'title'; $this->sortOptions = ['title' => 'sort_title', 'author' => 'sort_author', 'year DESC' => 'sort_year', 'year' => 'sort_year asc']; $config = $configLoader->get('config'); if (isset($config->Social->lists_default_limit)) { $this->defaultLimit = $config->Social->lists_default_limit; } if (isset($config->Social->lists_limit_options)) { $this->limitOptions = explode(',', $config->Social->lists_limit_options); } if (isset($config->Social->lists_view)) { $this->listviewOption = $config->Social->lists_view; } }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $this->searchIni = 'MetaLib'; $searchSettings = $configLoader->get($this->searchIni); $this->translatedFacets = ['metalib_set']; // Set up limit preferences if (isset($searchSettings->General->default_limit)) { $this->defaultLimit = $searchSettings->General->default_limit; } if (isset($searchSettings->General->limit_options)) { $this->limitOptions = explode(",", $searchSettings->General->limit_options); } // Result limit: if (isset($searchSettings->General->result_limit)) { $this->resultLimit = $searchSettings->General->result_limit; } else { $this->resultLimit = 2000; // default } // Load sort preferences: if (isset($searchSettings->Sorting)) { foreach ($searchSettings->Sorting as $key => $value) { $this->sortOptions[$key] = $value; } } if (isset($searchSettings->General->default_sort)) { $this->defaultSort = $searchSettings->General->default_sort; } if (isset($searchSettings->Advanced_Searches)) { foreach ($searchSettings->Advanced_Searches as $key => $value) { $this->advancedHandlers[$key] = $value; } } if (isset($searchSettings->Autocomplete->enabled)) { $this->autocompleteEnabled = $searchSettings->Autocomplete->enabled; } }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $config = $configLoader->get('config'); if (isset($config->Social->show_solr_options_in_tag_search) && $config->Social->show_solr_options_in_tag_search) { $this->useSolrSearchOptions = true; } $searchSettings = $this->useSolrSearchOptions ? $configLoader->get($this->searchIni) : null; if (isset($searchSettings->Basic_Searches)) { foreach ($searchSettings->Basic_Searches as $key => $value) { $this->basicHandlers[$key] = $value; } } else { $this->basicHandlers = ['tag' => 'Tag']; } $this->defaultHandler = 'tag'; $this->defaultSort = 'title'; $this->sortOptions = ['title' => 'sort_title', 'author' => 'sort_author', 'year DESC' => 'sort_year', 'year' => 'sort_year asc']; // Load autocomplete preference: if (isset($searchSettings->Autocomplete->enabled)) { $this->autocompleteEnabled = $searchSettings->Autocomplete->enabled; } }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $this->searchIni = $this->facetsIni = 'WorldCat'; // Load the configuration file: $searchSettings = $configLoader->get($this->searchIni); // Search handler setup: $this->defaultHandler = 'srw.kw'; if (isset($searchSettings->Basic_Searches)) { foreach ($searchSettings->Basic_Searches as $key => $value) { $this->basicHandlers[$key] = $value; } } if (isset($searchSettings->Advanced_Searches)) { foreach ($searchSettings->Advanced_Searches as $key => $value) { $this->advancedHandlers[$key] = $value; } } // Load sort preferences: if (isset($searchSettings->Sorting)) { foreach ($searchSettings->Sorting as $key => $value) { $this->sortOptions[$key] = $value; } } if (isset($searchSettings->General->default_sort)) { $this->defaultSort = $searchSettings->General->default_sort; } if (isset($searchSettings->DefaultSortingByType) && count($searchSettings->DefaultSortingByType) > 0) { foreach ($searchSettings->DefaultSortingByType as $key => $val) { $this->defaultSortByHandler[$key] = $val; } } // Load list view for result (controls AJAX embedding vs. linking) if (isset($searchSettings->List->view)) { $this->listviewOption = $searchSettings->List->view; } }
/** * Constructor * * @return void */ public function __construct() { parent::__construct(); $searchSettings = ConfigReader::getConfig($this->searchIni); if (isset($searchSettings->General->default_limit)) { $this->defaultLimit = $searchSettings->General->default_limit; } if (isset($searchSettings->General->limit_options)) { $this->limitOptions = explode(",", $searchSettings->General->limit_options); } if (isset($searchSettings->General->default_sort)) { $this->defaultSort = $searchSettings->General->default_sort; } if (isset($searchSettings->DefaultSortingByType) && count($searchSettings->DefaultSortingByType) > 0) { foreach ($searchSettings->DefaultSortingByType as $key => $val) { $this->defaultSortByHandler[$key] = $val; } } if (isset($searchSettings->RSS->sort)) { $this->rssSort = $searchSettings->RSS->sort; } if (isset($searchSettings->General->default_view)) { $this->defaultView = $searchSettings->General->default_view; } if (isset($searchSettings->General->default_handler)) { $this->defaultHandler = $searchSettings->General->default_handler; } if (isset($searchSettings->General->retain_filters_by_default)) { $this->retainFiltersByDefault = $searchSettings->General->retain_filters_by_default; } if (isset($searchSettings->Basic_Searches)) { foreach ($searchSettings->Basic_Searches as $key => $value) { $this->basicHandlers[$key] = $value; } } if (isset($searchSettings->Advanced_Searches)) { foreach ($searchSettings->Advanced_Searches as $key => $value) { $this->advancedHandlers[$key] = $value; } } // Load sort preferences (or defaults if none in .ini file): if (isset($searchSettings->Sorting)) { foreach ($searchSettings->Sorting as $key => $value) { $this->sortOptions[$key] = $value; } } else { $this->sortOptions = array('relevance' => 'sort_relevance', 'year' => 'sort_year', 'year asc' => 'sort_year asc', 'callnumber' => 'sort_callnumber', 'author' => 'sort_author', 'title' => 'sort_title'); } // Load view preferences (or defaults if none in .ini file): if (isset($searchSettings->Views)) { foreach ($searchSettings->Views as $key => $value) { $this->viewOptions[$key] = $value; } } elseif (isset($searchSettings->General->default_view)) { $this->viewOptions = array($this->defaultView => $this->defaultView); } else { $this->viewOptions = array('list' => 'List'); } // Load facet preferences $facetSettings = ConfigReader::getConfig($this->facetsIni); if (isset($facetSettings->Advanced_Settings->translated_facets) && count($facetSettings->Advanced_Settings->translated_facets) > 0) { foreach ($facetSettings->Advanced_Settings->translated_facets as $c) { $this->translatedFacets[] = $c; } } if (isset($facetSettings->Advanced_Settings->special_facets)) { $this->specialAdvancedFacets = $facetSettings->Advanced_Settings->special_facets; } // Load Spelling preferences $config = ConfigReader::getConfig(); if (isset($config->Spelling->enabled)) { $this->spellcheck = $config->Spelling->enabled; } if (isset($config->Spelling->limit)) { $this->spellingLimit = $config->Spelling->limit; } if (isset($config->Spelling->simple)) { $this->spellSimple = $config->Spelling->simple; } if (isset($config->Spelling->skip_numeric)) { $this->spellSkipNumeric = $config->Spelling->skip_numeric; } // Turn on highlighting if the user has requested highlighting or snippet // functionality: $highlight = !isset($searchSettings->General->highlighting) ? false : $searchSettings->General->highlighting; $snippet = !isset($searchSettings->General->snippets) ? false : $searchSettings->General->snippets; if ($highlight || $snippet) { $this->highlight = true; } // Apply hidden filters: if (isset($searchSettings->HiddenFilters)) { foreach ($searchSettings->HiddenFilters as $field => $subfields) { $rawFilter = $field . ':' . '"' . addcslashes($subfields, '"') . '"'; $this->addHiddenFilter($rawFilter); } } if (isset($searchSettings->RawHiddenFilters)) { foreach ($searchSettings->RawHiddenFilters as $rawFilter) { $this->addHiddenFilter($rawFilter); } } // Load autocomplete preference: if (isset($searchSettings->Autocomplete->enabled)) { $this->autocompleteEnabled = $searchSettings->Autocomplete->enabled; } // Load shard settings if (isset($searchSettings->IndexShards) && !empty($searchSettings->IndexShards)) { foreach ($searchSettings->IndexShards as $k => $v) { $this->shards[$k] = $v; } // If we have a default from the configuration, use that... if (isset($searchSettings->ShardPreferences->defaultChecked) && !empty($searchSettings->ShardPreferences->defaultChecked)) { $defaultChecked = is_object($searchSettings->ShardPreferences->defaultChecked) ? $searchSettings->ShardPreferences->defaultChecked->toArray() : array($searchSettings->ShardPreferences->defaultChecked); foreach ($defaultChecked as $current) { $this->defaultSelectedShards[] = $current; } } else { // If no default is configured, use all shards... $this->defaultSelectedShards = array_keys($this->shards); } // Apply checkbox visibility setting if applicable: if (isset($searchSettings->ShardPreferences->showCheckboxes)) { $this->visibleShardCheckboxes = $searchSettings->ShardPreferences->showCheckboxes; } // Apply field stripping if applicable: if (isset($searchSettings->StripFields)) { foreach ($searchSettings->StripFields as $k => $v) { $this->solrShardsFieldsToStrip[$k] = $v; } } } }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Configuration loader * @param array $apiInfo API information */ public function __construct(\VuFind\Config\PluginManager $configLoader, $apiInfo = null) { $this->searchIni = 'EDS'; $searchSettings = $configLoader->get($this->searchIni); parent::__construct($configLoader); $this->viewOptions = ['list|title' => 'Title View', 'list|brief' => 'Brief View', 'list|detailed' => 'Detailed View']; $this->apiInfo = $apiInfo; $this->setOptionsFromApi($searchSettings); $this->setOptionsFromConfig($searchSettings); }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $this->searchIni = $this->facetsIni = 'Summon'; // Load facet preferences: $facetSettings = $configLoader->get($this->facetsIni); if (isset($facetSettings->Advanced_Facet_Settings->translated_facets) && count($facetSettings->Advanced_Facet_Settings->translated_facets) > 0) { $this->setTranslatedFacets($facetSettings->Advanced_Facet_Settings->translated_facets->toArray()); } if (isset($facetSettings->Advanced_Facet_Settings->special_facets)) { $this->specialAdvancedFacets = $facetSettings->Advanced_Facet_Settings->special_facets; } // Load the search configuration file: $searchSettings = $configLoader->get($this->searchIni); // Set up limit preferences if (isset($searchSettings->General->default_limit)) { $this->defaultLimit = $searchSettings->General->default_limit; } if (isset($searchSettings->General->limit_options)) { $this->limitOptions = explode(",", $searchSettings->General->limit_options); } // Set up highlighting preference if (isset($searchSettings->General->highlighting)) { $this->highlight = $searchSettings->General->highlighting; } // Set up spelling preference if (isset($searchSettings->Spelling->enabled)) { $this->spellcheck = $searchSettings->Spelling->enabled; } // Load search preferences: if (isset($searchSettings->General->default_view)) { $this->defaultView = $searchSettings->General->default_view; } if (isset($searchSettings->General->retain_filters_by_default)) { $this->retainFiltersByDefault = $searchSettings->General->retain_filters_by_default; } if (isset($searchSettings->General->default_filters)) { $this->defaultFilters = $searchSettings->General->default_filters->toArray(); } if (isset($searchSettings->General->result_limit)) { $this->resultLimit = $searchSettings->General->result_limit; } else { $this->resultLimit = 400; // default } // Search handler setup: if (isset($searchSettings->Basic_Searches)) { foreach ($searchSettings->Basic_Searches as $key => $value) { $this->basicHandlers[$key] = $value; } } if (isset($searchSettings->Advanced_Searches)) { foreach ($searchSettings->Advanced_Searches as $key => $value) { $this->advancedHandlers[$key] = $value; } } // Load sort preferences: if (isset($searchSettings->Sorting)) { foreach ($searchSettings->Sorting as $key => $value) { $this->sortOptions[$key] = $value; } } if (isset($searchSettings->General->default_sort)) { $this->defaultSort = $searchSettings->General->default_sort; } if (isset($searchSettings->DefaultSortingByType) && count($searchSettings->DefaultSortingByType) > 0) { foreach ($searchSettings->DefaultSortingByType as $key => $val) { $this->defaultSortByHandler[$key] = $val; } } if (isset($searchSettings->General->empty_search_relevance_override)) { $this->emptySearchRelevanceOverride = $searchSettings->General->empty_search_relevance_override; } // Load view preferences (or defaults if none in .ini file): if (isset($searchSettings->Views)) { foreach ($searchSettings->Views as $key => $value) { $this->viewOptions[$key] = $value; } } elseif (isset($searchSettings->General->default_view)) { $this->viewOptions = [$this->defaultView => $this->defaultView]; } else { $this->viewOptions = ['list' => 'List']; } }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $this->searchIni = $this->facetsIni = 'Primo'; // Load facet preferences: $facetSettings = $configLoader->get($this->facetsIni); if (isset($facetSettings->Advanced_Facet_Settings->translated_facets) && count($facetSettings->Advanced_Facet_Settings->translated_facets) > 0) { $list = $facetSettings->Advanced_Facet_Settings->translated_facets; foreach ($list as $c) { $this->translatedFacets[] = $c; } } if (isset($facetSettings->Advanced_Facet_Settings->special_facets)) { $this->specialAdvancedFacets = $facetSettings->Advanced_Facet_Settings->special_facets; } // Load the search configuration file: $searchSettings = $configLoader->get($this->searchIni); // Set up limit preferences if (isset($searchSettings->General->default_limit)) { $this->defaultLimit = $searchSettings->General->default_limit; } if (isset($searchSettings->General->limit_options)) { $this->limitOptions = explode(",", $searchSettings->General->limit_options); } // Load search preferences: if (isset($searchSettings->General->retain_filters_by_default)) { $this->retainFiltersByDefault = $searchSettings->General->retain_filters_by_default; } if (isset($searchSettings->General->default_filters)) { $this->defaultFilters = $searchSettings->General->default_filters->toArray(); } // Result limit: if (isset($searchSettings->General->result_limit)) { $this->resultLimit = $searchSettings->General->result_limit; } else { $this->resultLimit = 3980; // default } // Search handler setup: if (isset($searchSettings->Basic_Searches)) { foreach ($searchSettings->Basic_Searches as $key => $value) { $this->basicHandlers[$key] = $value; } } if (isset($searchSettings->Advanced_Searches)) { foreach ($searchSettings->Advanced_Searches as $key => $value) { $this->advancedHandlers[$key] = $value; } } // Advanced operator setup: if (isset($searchSettings->Advanced_Operators)) { foreach ($searchSettings->Advanced_Operators as $key => $value) { $this->advancedOperators[$key] = $value; } } // Load sort preferences: if (isset($searchSettings->Sorting)) { foreach ($searchSettings->Sorting as $key => $value) { $this->sortOptions[$key] = $value; } } if (isset($searchSettings->General->default_sort)) { $this->defaultSort = $searchSettings->General->default_sort; } if (isset($searchSettings->DefaultSortingByType) && count($searchSettings->DefaultSortingByType) > 0) { foreach ($searchSettings->DefaultSortingByType as $key => $val) { $this->defaultSortByHandler[$key] = $val; } } }
/** * Map a search query from one class to another. * * @param \VuFind\Search\Base\Options $activeOptions Search options for source * @param string $targetClass Search class ID for target * @param string $query Search query to map * @param string $handler Search handler to map * * @return string */ protected function remapBasicSearch($activeOptions, $targetClass, $query, $handler) { // Set up results object for URL building: $results = $this->results->get($targetClass); $options = $results->getOptions(); // Find matching handler for new query (and use default if no match): $targetHandler = $options->getHandlerForLabel($activeOptions->getLabelForBasicHandler($handler)); // Clone helper so that we can remove active filters $urlQuery = $this->getView()->results->getUrlQuery(); $urlQuery = clone $urlQuery; // Remove current filters if (method_exists($urlQuery, 'removeAllFilters')) { $urlQuery->removeAllFilters(); } $filters = $this->getView()->results->getParams()->getFilters(); if (!empty($filters)) { // Filters active, include current search id in the url $searchClass = $this->activeSearchClass; if (method_exists($this->getView()->results, 'getSearchHash')) { $searchId = $this->getView()->results->getSearchHash(); if (method_exists($urlQuery, 'setSearchId')) { $query = $urlQuery->setSearchId($searchClass, $searchId); } } } else { $query = $urlQuery->getParams(false); } // Build new URL: $results->getParams()->setBasicSearch($query, $targetHandler); return $this->url->__invoke($options->getSearchAction()) . $query; }
/** * Get search URL if geo search is enabled for the specified search class ID, * false if disabled. * * @param Options $options Search options * * @return string|bool */ public function getSearchUrl(Options $options) { // If the relevant module is disabled, bail out now: if (!$this->recommendationEnabled($options->getRecommendationSettings())) { return false; } $urlHelper = $this->getView()->plugin('url'); return $urlHelper('search-results') . '?filter[]=' . urlencode($this->geoField) . ':Intersects(ENVELOPE(' . urlencode($this->coords) . '))'; }
/** * Map a search query from one class to another. * * @param \VuFind\Search\Base\Options $activeOptions Search options for source * @param string $targetClass Search class ID for target * @param string $query Search query to map * @param string $handler Search handler to map * @param array $filters Tab filters * * @return string */ protected function remapBasicSearch($activeOptions, $targetClass, $query, $handler, $filters) { // Set up results object for URL building: $results = $this->results->get($targetClass); $params = $results->getParams(); foreach ($filters as $filter) { $params->addHiddenFilter($filter); } // Find matching handler for new query (and use default if no match): $options = $results->getOptions(); $targetHandler = $options->getHandlerForLabel($activeOptions->getLabelForBasicHandler($handler)); // Build new URL: $results->getParams()->setBasicSearch($query, $targetHandler); return $this->url->__invoke($options->getSearchAction()) . $results->getUrlQuery()->getParams(false); }
/** * Map a search query from one class to another. * * @param \VuFind\Search\Base\Options $activeOptions Search options for source * @param string $targetClass Search class ID for target * @param string $query Search query to map * @param string $handler Search handler to map * @param array $filters Tab filters * * @return string */ protected function remapBasicSearch($activeOptions, $targetClass, $query, $handler, $filters) { // Set up results object for URL building: $targetResults = $this->results->get($targetClass); $targetParams = $targetResults->getParams(); $targetUrlQuery = $targetResults->getUrlQuery(); foreach ($filters as $filter) { $targetParams->addHiddenFilter($filter); } // Remove any remembered search hash for this tab: $targetTabId = $this->getTabId($targetClass, $targetParams->getHiddenFilters()); if (method_exists($targetUrlQuery, 'removeSearchId')) { $targetUrlQuery->removeSearchId($targetTabId); } // Find matching handler for new query (and use default if no match): $targetOptions = $targetResults->getOptions(); $targetHandler = $targetOptions->getHandlerForLabel($activeOptions->getLabelForBasicHandler($handler)); $targetParams->setBasicSearch($query, $targetHandler); // Clone the active query so that we can remove active filters $currentResults = clone $this->getView()->results; $urlQuery = $currentResults->getUrlQuery(); // Remove current filters $oldFilters = $currentResults->getParams()->getFilters(); $tabId = $this->getTabId($this->activeSearchClass, $currentResults->getParams()->getHiddenFilters()); $currentResults->getParams()->removeHiddenFilters(); $currentResults->getParams()->removeAllFilters(); $queryString = null; if (!empty($oldFilters)) { // Filters were active, include current search id in the url if (method_exists($currentResults, 'getSearchHash')) { $searchId = $currentResults->getSearchHash(); if (method_exists($urlQuery, 'setSearchId')) { $queryString = $urlQuery->setSearchId($tabId, $searchId); } } } if (null === $queryString) { $queryString = $urlQuery->getParams(false); } // Build new URL: $hiddenFilterQuery = substr($targetResults->getUrlQuery()->getParams(false), 1); $url = $this->url->__invoke($targetOptions->getSearchAction()) . $queryString; if ($hiddenFilterQuery) { $url .= "&{$hiddenFilterQuery}"; } return $url; }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $searchSettings = $configLoader->get($this->searchIni); if (isset($searchSettings->General->default_limit)) { $this->defaultLimit = $searchSettings->General->default_limit; } if (isset($searchSettings->General->limit_options)) { $this->limitOptions = explode(",", $searchSettings->General->limit_options); } if (isset($searchSettings->General->default_sort)) { $this->defaultSort = $searchSettings->General->default_sort; } if (isset($searchSettings->General->empty_search_relevance_override)) { $this->emptySearchRelevanceOverride = $searchSettings->General->empty_search_relevance_override; } if (isset($searchSettings->DefaultSortingByType) && count($searchSettings->DefaultSortingByType) > 0) { foreach ($searchSettings->DefaultSortingByType as $key => $val) { $this->defaultSortByHandler[$key] = $val; } } if (isset($searchSettings->RSS->sort)) { $this->rssSort = $searchSettings->RSS->sort; } if (isset($searchSettings->General->default_view)) { $this->defaultView = $searchSettings->General->default_view; } if (isset($searchSettings->General->default_handler)) { $this->defaultHandler = $searchSettings->General->default_handler; } if (isset($searchSettings->General->retain_filters_by_default)) { $this->retainFiltersByDefault = $searchSettings->General->retain_filters_by_default; } if (isset($searchSettings->General->default_filters)) { $this->defaultFilters = $searchSettings->General->default_filters->toArray(); } // Result limit: if (isset($searchSettings->General->result_limit)) { $this->resultLimit = $searchSettings->General->result_limit; } if (isset($searchSettings->Basic_Searches)) { foreach ($searchSettings->Basic_Searches as $key => $value) { $this->basicHandlers[$key] = $value; } } if (isset($searchSettings->Advanced_Searches)) { foreach ($searchSettings->Advanced_Searches as $key => $value) { $this->advancedHandlers[$key] = $value; } } // Load sort preferences (or defaults if none in .ini file): if (isset($searchSettings->Sorting)) { foreach ($searchSettings->Sorting as $key => $value) { $this->sortOptions[$key] = $value; } } else { $this->sortOptions = ['relevance' => 'sort_relevance', 'year' => 'sort_year', 'year asc' => 'sort_year asc', 'callnumber-sort' => 'sort_callnumber', 'author' => 'sort_author', 'title' => 'sort_title']; } // Load view preferences (or defaults if none in .ini file): if (isset($searchSettings->Views)) { foreach ($searchSettings->Views as $key => $value) { $this->viewOptions[$key] = $value; } } elseif (isset($searchSettings->General->default_view)) { $this->viewOptions = [$this->defaultView => $this->defaultView]; } else { $this->viewOptions = ['list' => 'List']; } // Load facet preferences $facetSettings = $configLoader->get($this->facetsIni); if (isset($facetSettings->Advanced_Settings->translated_facets) && count($facetSettings->Advanced_Settings->translated_facets) > 0) { $this->setTranslatedFacets($facetSettings->Advanced_Settings->translated_facets->toArray()); } if (isset($facetSettings->Advanced_Settings->special_facets)) { $this->specialAdvancedFacets = $facetSettings->Advanced_Settings->special_facets; } if (isset($facetSettings->SpecialFacets->hierarchical)) { $this->hierarchicalFacets = $facetSettings->SpecialFacets->hierarchical->toArray(); } if (isset($facetSettings->SpecialFacets->hierarchicalFacetSeparators)) { $this->hierarchicalFacetSeparators = $facetSettings->SpecialFacets->hierarchicalFacetSeparators->toArray(); } // Load Spelling preferences $config = $configLoader->get('config'); if (isset($config->Spelling->enabled)) { $this->spellcheck = $config->Spelling->enabled; } // Turn on highlighting if the user has requested highlighting or snippet // functionality: $highlight = !isset($searchSettings->General->highlighting) ? false : $searchSettings->General->highlighting; $snippet = !isset($searchSettings->General->snippets) ? false : $searchSettings->General->snippets; if ($highlight || $snippet) { $this->highlight = true; } // Load autocomplete preference: if (isset($searchSettings->Autocomplete->enabled)) { $this->autocompleteEnabled = $searchSettings->Autocomplete->enabled; } // Load shard settings if (isset($searchSettings->IndexShards) && !empty($searchSettings->IndexShards)) { foreach ($searchSettings->IndexShards as $k => $v) { $this->shards[$k] = $v; } // If we have a default from the configuration, use that... if (isset($searchSettings->ShardPreferences->defaultChecked) && !empty($searchSettings->ShardPreferences->defaultChecked)) { $defaultChecked = is_object($searchSettings->ShardPreferences->defaultChecked) ? $searchSettings->ShardPreferences->defaultChecked->toArray() : [$searchSettings->ShardPreferences->defaultChecked]; foreach ($defaultChecked as $current) { $this->defaultSelectedShards[] = $current; } } else { // If no default is configured, use all shards... $this->defaultSelectedShards = array_keys($this->shards); } // Apply checkbox visibility setting if applicable: if (isset($searchSettings->ShardPreferences->showCheckboxes)) { $this->visibleShardCheckboxes = $searchSettings->ShardPreferences->showCheckboxes; } } }
/** * Return HTTP parameters to render the current page with a different limit * parameter. * * @param string $l New limit parameter (null for NO limit parameter) * @param bool $escape Should we escape the string for use in the view? * * @return string */ public function setLimit($l, $escape = true) { return $this->updateQueryString('limit', $l, $this->options->getDefaultLimit(), $escape, true); }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Configuration loader * @param array $apiInfo API information */ public function __construct(\VuFind\Config\PluginManager $configLoader, $apiInfo = null) { $this->searchIni = $this->facetsIni = 'EDS'; $searchSettings = $configLoader->get($this->searchIni); parent::__construct($configLoader); $this->resultLimit = 100; $this->viewOptions = ['list|title' => 'Title View', 'list|brief' => 'Brief View', 'list|detailed' => 'Detailed View']; $this->apiInfo = $apiInfo; $this->setOptionsFromApi($searchSettings); $this->setOptionsFromConfig($searchSettings); $facetConf = $configLoader->get($this->facetsIni); if (isset($facetConf->Advanced_Facet_Settings->translated_facets) && count($facetConf->Advanced_Facet_Settings->translated_facets) > 0) { $this->setTranslatedFacets($facetConf->Advanced_Facet_Settings->translated_facets->toArray()); } }
/** * Constructor * * @param \VuFind\Config\PluginManager $configLoader Config loader */ public function __construct(\VuFind\Config\PluginManager $configLoader) { parent::__construct($configLoader); $this->defaultSort = 'saved DESC'; $this->sortOptions = ['title' => 'sort_title', 'author' => 'sort_author', 'year DESC' => 'sort_year', 'year' => 'sort_year asc', 'saved DESC' => 'sort_created']; }