Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
Options
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 4
56
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
12
 getFacetListAction
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getRecommendationSettings
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
6
 getSearchAction
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3/**
4 * Solr Collection aspect of the Search Multi-class (Options)
5 *
6 * PHP version 8
7 *
8 * Copyright (C) Villanova University 2010.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2,
12 * as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22 *
23 * @category VuFind
24 * @package  Search_SolrAuthor
25 * @author   Demian Katz <demian.katz@villanova.edu>
26 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
27 * @link     https://vufind.org Main Site
28 */
29
30namespace VuFind\Search\SolrCollection;
31
32/**
33 * Solr Collection Search Options
34 *
35 * @category VuFind
36 * @package  Search_SolrAuthor
37 * @author   Demian Katz <demian.katz@villanova.edu>
38 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
39 * @link     https://vufind.org Main Site
40 */
41class Options extends \VuFind\Search\Solr\Options
42{
43    /**
44     * Constructor
45     *
46     * @param \VuFind\Config\PluginManager $configLoader Config loader
47     */
48    public function __construct(\VuFind\Config\PluginManager $configLoader)
49    {
50        $this->facetsIni = 'Collection';
51        parent::__construct($configLoader);
52
53        // Load sort preferences (or defaults if none in .ini file):
54        $searchSettings = $configLoader->get('Collection');
55        if (isset($searchSettings->Sort)) {
56            $this->sortOptions = [];
57            foreach ($searchSettings->Sort as $key => $value) {
58                $this->sortOptions[$key] = $value;
59            }
60        } else {
61            $this->sortOptions = [
62                'title' => 'sort_title',
63                'year' => 'sort_year', 'year asc' => 'sort_year asc',
64                'author' => 'sort_author',
65            ];
66        }
67        $this->defaultSort = key($this->sortOptions);
68    }
69
70    /**
71     * Return the route name for the facet list action. Returns false to cover
72     * unimplemented support.
73     *
74     * @return string|bool
75     */
76    public function getFacetListAction()
77    {
78        return 'search-collectionfacetlist';
79    }
80
81    /**
82     * Load all recommendation settings from the relevant ini file. Returns an
83     * associative array where the key is the location of the recommendations (top
84     * or side) and the value is the settings found in the file (which may be either
85     * a single string or an array of strings).
86     *
87     * @param string $handler Name of handler for which to load specific settings.
88     *
89     * @return array associative: location (top/side/etc.) => search settings
90     */
91    public function getRecommendationSettings($handler = null)
92    {
93        // Collection recommendations
94        $searchSettings = $this->configLoader->get('Collection');
95        return isset($searchSettings->Recommend)
96            ? $searchSettings->Recommend->toArray()
97            : ['side' => ['CollectionSideFacets:Facets::Collection:true']];
98    }
99
100    /**
101     * Return the route name for the search results action.
102     *
103     * @return string
104     */
105    public function getSearchAction()
106    {
107        return 'collection';
108    }
109}