Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzXmlSitemap
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 4
56
0.00% covered (danger)
0.00%
0 / 1
 getPageTitle
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getPageDescription
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getHtmlWhenHasAccess
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
6
 getEntry
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace Olz\Components\OlzXmlSitemap;
4
5use Olz\Components\OlzSitemap\OlzSitemap;
6
7class OlzXmlSitemap extends OlzSitemap {
8    public function getPageTitle(): string {
9        return "XML-Sitemap";
10    }
11
12    public function getPageDescription(): string {
13        return "Eine maschinenlesbare Übersicht über alle öffentlichen Inhalte der Website der OL Zimmerberg.";
14    }
15
16    public function getHtmlWhenHasAccess(mixed $args): string {
17        $out = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
18        $out .= "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
19
20        $entries = $this->getEntries();
21        foreach ($entries as $entry) {
22            $out .= self::getEntry($entry);
23        }
24
25        $out .= "</urlset>\n";
26        return $out;
27    }
28
29    /** @param array{title: string, description: string, url: string, updates: string, importance: float, level: int} $entry */
30    private static function getEntry(array $entry): string {
31        $url = htmlentities($entry['url']);
32        $change_frequency = $entry['updates'];
33        $priority = $entry['importance'];
34        $change_frequency_line = $change_frequency ? "<changefreq>{$change_frequency}</changefreq>" : '';
35        $priority_line = $priority ? "<priority>{$priority}</priority>" : '';
36        return <<<ZZZZZZZZZZ
37                <url>
38                    <loc>{$url}</loc>
39                    {$change_frequency_line}
40                    {$priority_line}
41                </url>\n
42            ZZZZZZZZZZ;
43    }
44}