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 / 4
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 / 25
0.00% covered (danger)
0.00%
0 / 4
30
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 / 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 function getPageTitle(): string {
16        return "Sitemap";
17    }
18
19    public function getPageDescription(): string {
20        return "Eine Übersicht über alle öffentlichen Inhalte der Website der OL Zimmerberg.";
21    }
22
23    public function getHtmlWhenHasAccess(mixed $args): string {
24        $this->httpUtils()->validateGetParams(OlzHtmlSitemapParams::class);
25
26        $out = OlzHeader::render([
27            'title' => $this->getPageTitle(),
28            'description' => $this->getPageDescription(),
29        ]);
30        $out .= "<div class='content-full olz-html-sitemap'>";
31        $out .= "<h1>Sitemap</h1>";
32
33        $entries = $this->getEntries();
34        foreach ($entries as $entry) {
35            $out .= self::getEntry($entry);
36        }
37
38        $out .= "</div>";
39        $out .= OlzFooter::render();
40        return $out;
41    }
42
43    /** @param array{title: string, description: string, url: string, updates: string, importance: float, level: int} $entry */
44    private static function getEntry(array $entry): string {
45        $url = $entry['url'];
46        $title = $entry['title'];
47        $description = $entry['description'];
48        $level = $entry['level'];
49        return <<<ZZZZZZZZZZ
50            <div class="entry level-{$level}">
51                <a href="{$url}">
52                    <span class="title">{$title}</span><br />
53                    <span class="description">{$description}</span>
54                </a>
55            </div>
56            ZZZZZZZZZZ;
57    }
58}