Exemple #1
0
 /**
  * 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;
         }
     }
 }
Exemple #2
0
 /**
  * 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;
         }
     }
 }
Exemple #3
0
 /**
  * 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');
 }
Exemple #4
0
 /**
  * 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;
         }
     }
 }
Exemple #5
0
 /**
  * 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'];
 }
Exemple #6
0
 /**
  * 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;
         }
     }
 }
Exemple #7
0
 /**
  * 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;
     }
 }
Exemple #8
0
 /**
  * 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);
     }
 }
Exemple #9
0
 /**
  * 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;
     }
 }
Exemple #10
0
 /**
  * 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;
     }
 }
Exemple #11
0
 /**
  * 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;
     }
 }
Exemple #12
0
 /**
  * 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;
     }
 }
Exemple #13
0
 /**
  * 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;
             }
         }
     }
 }
Exemple #14
0
 /**
  * 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);
 }
Exemple #15
0
 /**
  * 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'];
     }
 }
Exemple #16
0
 /**
  * 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;
         }
     }
 }
Exemple #17
0
 /**
  * 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;
 }
Exemple #18
0
 /**
  * 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) . '))';
 }
Exemple #19
0
 /**
  * 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);
 }
Exemple #20
0
 /**
  * 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;
 }
Exemple #21
0
 /**
  * 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);
 }
Exemple #23
0
 /**
  * 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());
     }
 }
Exemple #24
0
 /**
  * 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'];
 }