Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 25
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzMapData
0.00% covered (danger)
0.00%
0 / 25
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 1
 getHtml
0.00% covered (danger)
0.00%
0 / 25
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3// =============================================================================
4// Strukturierte Daten (siehe https://schema.org) zur OL Zimmerberg.
5// =============================================================================
6
7namespace Olz\Components\Schema\OlzMapData;
8
9use Olz\Components\Common\OlzComponent;
10
11/** @extends OlzComponent<array<string, mixed>> */
12class OlzMapData extends OlzComponent {
13    public function getHtml(mixed $args): string {
14        $name = $args['name'] ?? '';
15        $year = $args['year'] ?? '';
16        $scale = $args['scale'] ?? '';
17        $year_description = $year ? " (Stand {$year})" : '';
18        $scale_description = $scale ? " im Massstab {$scale}" : '';
19        $olz_link_data = [
20            '@type' => 'SportsOrganization',
21            'identifier' => 'https://olzimmerberg.ch',
22            'url' => 'https://olzimmerberg.ch',
23            'name' => 'OL Zimmerberg',
24        ];
25        $map_data = [
26            '@context' => 'https://schema.org',
27            '@type' => 'Map',
28            'mapType' => 'https://schema.org/VenueMap',
29            'name' => $name,
30            'description' => "Die Orientierungslaufkarte \"{$name}\"{$year_description}{$scale_description}, herausgegeben von der OL Zimmerberg.",
31            'maintainer' => $olz_link_data,
32            'provider' => $olz_link_data,
33        ];
34        $json_map_data = json_encode($map_data);
35        return <<<ZZZZZZZZZZ
36            <script type="application/ld+json">
37            {$json_map_data}
38            </script>
39            ZZZZZZZZZZ;
40    }
41}