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 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzHtmlSitemapParams
n/a
0 / 0
n/a
0 / 0
0
n/a
0 / 0
OlzHtmlSitemap
0.00% covered (danger)
0.00%
0 / 23
0.00% covered (danger)
0.00%
0 / 2
12
0.00% covered (danger)
0.00%
0 / 1
 getHtml
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
6
 getEntry
0.00% covered (danger)
0.00%
0 / 10
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Olz\Components\OlzHtmlSitemap;
4
5use Olz\Components\OlzSitemap\OlzSitemap;
6use Olz\Components\Page\OlzFooter\OlzFooter;
7use Olz\Components\Page\OlzHeader\OlzHeader;
8use Olz\Utils\HttpParams;
9
10/** @extends HttpParams<array{}> */
11class OlzHtmlSitemapParams extends HttpParams {
12}
13
14class OlzHtmlSitemap extends OlzSitemap {
15    public static string $title = "Sitemap";
16    public static string $description = "Eine Übersicht über alle aktiven Inhalte der Website der OL Zimmerberg.";
17
18    public function getHtml(mixed $args): string {
19        $this->httpUtils()->validateGetParams(OlzHtmlSitemapParams::class);
20
21        $out = OlzHeader::render([
22            'title' => self::$title,
23            'description' => self::$description,
24        ]);
25        $out .= "<div class='content-full olz-html-sitemap'>";
26        $out .= "<h1>Sitemap</h1>";
27
28        $entries = $this->getEntries();
29        foreach ($entries as $entry) {
30            $out .= self::getEntry($entry);
31        }
32
33        $out .= "</div>";
34        $out .= OlzFooter::render();
35        return $out;
36    }
37
38    /** @param array{title: string, description: string, url: string, updates: string, importance: float, level: int} $entry */
39    private static function getEntry(array $entry): string {
40        $url = $entry['url'];
41        $title = $entry['title'];
42        $description = $entry['description'];
43        $level = $entry['level'];
44        return <<<ZZZZZZZZZZ
45            <div class="entry level-{$level}">
46                <a href="{$url}">
47                    <span class="title">{$title}</span><br />
48                    <span class="description">{$description}</span>
49                </a>
50            </div>
51            ZZZZZZZZZZ;
52    }
53}