Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 33
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzVereinParams
n/a
0 / 0
n/a
0 / 0
0
n/a
0 / 0
OlzVerein
0.00% covered (danger)
0.00%
0 / 33
0.00% covered (danger)
0.00%
0 / 5
42
0.00% covered (danger)
0.00%
0 / 1
 hasAccess
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 searchSqlWhenHasAccess
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
2
 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 / 23
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace Olz\Roles\Components\OlzVerein;
4
5use Olz\Components\Common\OlzRootComponent;
6use Olz\Components\Page\OlzFooter\OlzFooter;
7use Olz\Components\Page\OlzHeader\OlzHeader;
8use Olz\Roles\Components\OlzOrganigramm\OlzOrganigramm;
9use Olz\Utils\HttpParams;
10
11/** @extends HttpParams<array{von?: ?string}> */
12class OlzVereinParams extends HttpParams {
13}
14
15/** @extends OlzRootComponent<array<string, mixed>> */
16class OlzVerein extends OlzRootComponent {
17    public function hasAccess(): bool {
18        return true;
19    }
20
21    public function searchSqlWhenHasAccess(array $terms): string|array|null {
22        $code_href = $this->envUtils()->getCodeHref();
23        return $this->searchUtils()->getStaticResultQuery([
24            'link' => "{$code_href}karten",
25            'icon' => "{$code_href}assets/icns/link_map_16.svg",
26            'title' => $this->getPageTitle(),
27            'text' => $this->getPageDescription(),
28        ], $terms);
29    }
30
31    public function getPageTitle(): string {
32        return "Verein";
33    }
34
35    public function getPageDescription(): string {
36        return "Die wichtigsten Kontaktadressen und eine Liste aller Vereinsorgane der OL Zimmerberg.";
37    }
38
39    public function getHtmlWhenHasAccess(mixed $args): string {
40        $this->httpUtils()->validateGetParams(OlzVereinParams::class);
41        $code_href = $this->envUtils()->getCodeHref();
42
43        $out = OlzHeader::render([
44            'title' => $this->getPageTitle(),
45            'description' => $this->getPageDescription(),
46            'canonical_url' => "{$code_href}verein",
47        ]);
48
49        $db = $this->dbUtils()->getDb();
50        $result = $db->query("SELECT id, name FROM roles WHERE featured_position IS NOT NULL ORDER BY featured_position ASC");
51        $featured_out = '';
52        // @phpstan-ignore-next-line
53        while ($row = $result->fetch_assoc()) {
54            $id = $row['id'];
55            $title = $row['name'];
56            $featured_out .= "<div><b><a href='javascript:olz.highlightOrganigramm(&quot;role-{$id}&quot;)' class='linkint'>{$title}</a></b></div>";
57        }
58        $out .= "<div class='content-full'><h1>Verein</h1><div id='organigramm'>";
59        $out .= <<<ZZZZZZZZZZ
60            <h2>Häufig gesucht</h2>
61            {$featured_out}
62            <div>
63                <br />
64                <div><b>PC-Konto</b></div>
65                <div><b>IBAN: </b>CH91 0900 0000 8525 6448 8</div>
66                <div><b>Empfänger: </b>OL Zimmerberg, 8800 Thalwil</div>
67            </div>
68            ZZZZZZZZZZ;
69
70        $out .= OlzOrganigramm::render();
71
72        $out .= "</div></div>";
73
74        $out .= OlzFooter::render();
75        return $out;
76    }
77}