Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 23
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 / 23
0.00% covered (danger)
0.00%
0 / 4
156
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 1
90
 getSearchAction
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getAdvancedSearchAction
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 supportsCart
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3/**
4 * Pazpar2 Search Options
5 *
6 * PHP version 8
7 *
8 * Copyright (C) Villanova University 2011.
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_Pazpar2
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 Page
28 */
29
30namespace VuFind\Search\Pazpar2;
31
32use function is_object;
33
34/**
35 * Pazpar2 Search Options
36 *
37 * @category VuFind
38 * @package  Search_Pazpar2
39 * @author   Demian Katz <demian.katz@villanova.edu>
40 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
41 * @link     https://vufind.org Main Page
42 */
43class Options extends \VuFind\Search\Base\Options
44{
45    /**
46     * Constructor
47     *
48     * @param \VuFind\Config\PluginManager $configLoader Config loader
49     */
50    public function __construct(\VuFind\Config\PluginManager $configLoader)
51    {
52        parent::__construct($configLoader);
53        $this->searchIni = $this->facetsIni = 'Pazpar2';
54
55        $this->limitOptions = [$this->defaultLimit];
56
57        // Load source settings
58        $searchSettings = $configLoader->get($this->searchIni);
59        if (
60            isset($searchSettings->IndexSources)
61            && !empty($searchSettings->IndexSources)
62        ) {
63            foreach ($searchSettings->IndexSources as $k => $v) {
64                $this->shards[$k] = $v;
65            }
66            // If we have a default from the configuration, use that...
67            if (
68                isset($searchSettings->SourcePreferences->defaultChecked)
69                && !empty($searchSettings->SourcePreferences->defaultChecked)
70            ) {
71                $defaultChecked
72                    = is_object($searchSettings->SourcePreferences->defaultChecked)
73                    ? $searchSettings->SourcePreferences->defaultChecked->toArray()
74                    : [$searchSettings->SourcePreferences->defaultChecked];
75                foreach ($defaultChecked as $current) {
76                    $this->defaultSelectedShards[] = $current;
77                }
78            } else {
79                // If no default is configured, use all sources...
80                $this->defaultSelectedShards = array_keys($this->shards);
81            }
82            // Apply checkbox visibility setting if applicable:
83            if (isset($searchSettings->SourcePreferences->showCheckboxes)) {
84                $this->visibleShardCheckboxes
85                    = $searchSettings->SourcePreferences->showCheckboxes;
86            }
87        }
88    }
89
90    /**
91     * Return the route name for the search results action.
92     *
93     * @return string
94     */
95    public function getSearchAction()
96    {
97        return 'pazpar2-search';
98    }
99
100    /**
101     * Return the route name of the action used for performing advanced searches.
102     * Returns false if the feature is not supported.
103     *
104     * @return string|bool
105     */
106    public function getAdvancedSearchAction()
107    {
108        return false;
109    }
110
111    /**
112     * Does this search option support the cart/book bag?
113     *
114     * @return bool
115     */
116    public function supportsCart()
117    {
118        // Not currently supported
119        return false;
120    }
121}