Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 22 |
|
0.00% |
0 / 4 |
CRAP | |
0.00% |
0 / 1 |
BasemapConfig | |
0.00% |
0 / 22 |
|
0.00% |
0 / 4 |
90 | |
0.00% |
0 / 1 |
getDefaultOptions | |
0.00% |
0 / 6 |
|
0.00% |
0 / 1 |
2 | |||
getBasemap | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
20 | |||
getMapSelectionBasemap | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
6 | |||
getMapTabBasemap | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
6 |
1 | <?php |
2 | |
3 | /** |
4 | * Basemap Configuration Module |
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 GeoFeatures |
25 | * @author Leila Gonzales <lmg@agiweb.org> |
26 | * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License |
27 | * @link https://vufind.org/wiki/development:plugins:recommendation_modules Wiki |
28 | */ |
29 | |
30 | namespace VuFind\GeoFeatures; |
31 | |
32 | /** |
33 | * Basemap Configuration Class |
34 | * |
35 | * @category VuFind |
36 | * @package GeoFeatures |
37 | * @author Leila Gonzales <lmg@agiweb.org> |
38 | * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License |
39 | * @link https://vufind.org/wiki/development:plugins:hierarchy_components Wiki |
40 | */ |
41 | class BasemapConfig extends AbstractConfig |
42 | { |
43 | /** |
44 | * Request origin |
45 | * |
46 | * @var string |
47 | */ |
48 | protected $requestOrigin; |
49 | |
50 | /** |
51 | * Valid options to retrieve from configuration |
52 | * |
53 | * @var string[] |
54 | */ |
55 | protected $options = ['basemap_url', 'basemap_attribution']; |
56 | |
57 | /** |
58 | * Set default options |
59 | * |
60 | * @return array |
61 | */ |
62 | protected function getDefaultOptions() |
63 | { |
64 | return [ |
65 | 'basemap_url' => 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', |
66 | 'basemap_attribution' => '<a href="https://wikimediafoundation.org/' |
67 | . 'wiki/Maps_Terms_of_Use">Wikimedia</a> | © <a ' |
68 | . 'href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>', |
69 | ]; |
70 | } |
71 | |
72 | /** |
73 | * Get the basemap configuration settings. |
74 | * |
75 | * @param string $origin Origin of request MapTab or MapSelection |
76 | * |
77 | * @return array |
78 | */ |
79 | public function getBasemap($origin) |
80 | { |
81 | $options = []; |
82 | if ($origin == 'MapSelection') { |
83 | $options = $this->getMapSelectionBasemap(); |
84 | } elseif ($origin == 'MapTab') { |
85 | $options = $this->getMapTabBasemap(); |
86 | } |
87 | // Fail over to geofeatures.ini [Basemap] if no other settings found: |
88 | if (empty($options)) { |
89 | $options = $this->getOptions('geofeatures', 'Basemap', $this->options); |
90 | } |
91 | // Fill in any missing defaults: |
92 | return $options + $this->getDefaultOptions(); |
93 | } |
94 | |
95 | /** |
96 | * Get the basemap configuration settings for MapSelection. |
97 | * |
98 | * @return array |
99 | */ |
100 | protected function getMapSelectionBasemap() |
101 | { |
102 | // Check geofeatures.ini [MapSelection] |
103 | $options = $this->getOptions('geofeatures', 'MapSelection', $this->options); |
104 | |
105 | // Fail over to legacy configuration if empty |
106 | return empty($options) |
107 | ? $this->getOptions('searches', 'MapSelection', $this->options) |
108 | : $options; |
109 | } |
110 | |
111 | /** |
112 | * Get the basemap configuration settings for MapTab. |
113 | * |
114 | * @return array |
115 | */ |
116 | protected function getMapTabBasemap() |
117 | { |
118 | // Check geofeatures.ini [MapTab] |
119 | $options = $this->getOptions('geofeatures', 'MapTab', $this->options); |
120 | |
121 | // Fail over to legacy configuration if empty |
122 | return empty($options) |
123 | ? $this->getOptions('config', 'Content', $this->options) |
124 | : $options; |
125 | } |
126 | } |