OpenStreetMap::title()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
/**
4
 * webtrees: online genealogy
5
 * Copyright (C) 2025 webtrees development team
6
 * This program is free software: you can redistribute it and/or modify
7
 * it under the terms of the GNU General Public License as published by
8
 * the Free Software Foundation, either version 3 of the License, or
9
 * (at your option) any later version.
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
 * GNU General Public License for more details.
14
 * You should have received a copy of the GNU General Public License
15
 * along with this program. If not, see <https://www.gnu.org/licenses/>.
16
 */
17
18
declare(strict_types=1);
19
20
namespace Fisharebest\Webtrees\Module;
21
22
use Fisharebest\Webtrees\I18N;
0 ignored issues
show
Bug introduced by
The type Fisharebest\Webtrees\I18N was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
23
24
/**
25
 * Class OpenStreetMap - use maps within webtrees
26
 */
27
class OpenStreetMap extends AbstractModule implements ModuleMapProviderInterface
28
{
29
    use ModuleMapProviderTrait;
30
31
    /**
32
     * Name of the map provider.
33
     *
34
     * @return string
35
     */
36
    public function description(): string
37
    {
38
        $link = '<a href="https://www.openstreetmap.org" dir="ltr">www.openstreetmap.org</a>';
39
40
        // I18N: %s is a link/URL
41
        return I18N::translate('Create maps using %s.', $link);
42
    }
43
44
    /**
45
     * Name of the map provider.
46
     *
47
     * @return string
48
     */
49
    public function title(): string
50
    {
51
        return I18N::translate('OpenStreetMap™');
52
    }
53
54
    /**
55
     * Parameters to create a TileLayer in LeafletJs.
56
     *
57
     * @return array<object>
58
     */
59
    public function leafletJsTileLayers(): array
60
    {
61
        return [
62
            (object) [
63
                'attribution' => 'Map data ©<a href="https://www.openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0">CC-BY-SA</a>',
64
                'default'     => true,
65
                'label'       => 'Mapnik',
66
                'maxZoom'     => 19,
67
                'minZoom'     => 2,
68
                'subdomains'  => ['a', 'b', 'c'],
69
                'url'         => 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
70
                'localName'   => 'OpenStreetMapsMapnik',
71
            ],
72
            (object) [
73
                'attribution' => 'Map data ©<a href="https://www.openstreetmap.org">Karte hergestellt aus OpenStreetMap-Daten</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0">CC-BY-SA</a>',
74
                'default'     => false,
75
                'label'       => 'Deutsch',
76
                'maxZoom'     => 18,
77
                'minZoom'     => 2,
78
                'subdomains'  => ['a', 'b', 'c'],
79
                'url'         => 'https://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png',
80
                'localName'   => 'OpenStreetMapsDeutsch',
81
            ],
82
            (object) [
83
                'attribution' => 'Map data ©<a href="https://www.openstreetmap.org">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0">CC-BY-SA</a>',
84
                'default'     => false,
85
                'label'       => 'Français',
86
                'maxZoom'     => 20,
87
                'minZoom'     => 2,
88
                'subdomains'  => ['a', 'b', 'c'],
89
                'url'         => 'https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png',
90
                'localName'   => 'OpenStreetMapsFrench',
91
            ],
92
        ];
93
    }
94
}
95