Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 38
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzHeaderBar
0.00% covered (danger)
0.00%
0 / 38
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 1
 getHtml
0.00% covered (danger)
0.00%
0 / 38
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3// =============================================================================
4// Die Kopfzeile der Website.
5// =============================================================================
6
7namespace Olz\Components\Page\OlzHeaderBar;
8
9use Olz\Components\Auth\OlzAccountMenu\OlzAccountMenu;
10use Olz\Components\Common\OlzComponent;
11use Olz\Components\Page\OlzMenu\OlzMenu;
12
13/** @extends OlzComponent<array<string, mixed>> */
14class OlzHeaderBar extends OlzComponent {
15    public function getHtml(mixed $args): string {
16        $code_href = $this->envUtils()->getCodeHref();
17        $data_href = $this->envUtils()->getDataHref();
18        $back_link = $args['back_link'] ?? null;
19
20        $account_menu_out = !($args['skip_auth_menu'] ?? false)
21            ? OlzAccountMenu::render([], $this)
22            : '';
23
24        $menu_out = OlzMenu::render([
25            'back_link' => $back_link,
26        ], $this);
27
28        $hamburger_or_back_out = ($back_link !== null)
29            ? <<<ZZZZZZZZZZ
30                <a href='{$back_link}' id='menu-switch'>
31                    <img
32                        src='{$code_href}assets/icns/menu_back.svg'
33                        alt=''
34                        class='menu-back noborder'
35                    />
36                </a>
37                ZZZZZZZZZZ
38            : <<<ZZZZZZZZZZ
39                <div id='menu-switch' onclick='olz.toggleMenu()'>
40                    <img
41                        src='{$code_href}assets/icns/menu_hamburger.svg'
42                        alt=''
43                        class='menu-hamburger noborder'
44                    />
45                    <img
46                        src='{$code_href}assets/icns/menu_close.svg'
47                        alt=''
48                        class='menu-close noborder'
49                    />
50                </div>
51                ZZZZZZZZZZ;
52
53        // TODO: Remove switch as soon as Safari properly supports SVGs.
54        $logo_out = preg_match('/Safari/i', $_SERVER['HTTP_USER_AGENT'] ?? '')
55            ? <<<ZZZZZZZZZZ
56                <img
57                    srcset='
58                        {$code_href}assets/icns/olz_logo@2x.png 2x,
59                        {$code_href}assets/icns/olz_logo.png 1x
60                    '
61                    src='{$code_href}assets/icns/olz_logo.png'
62                    alt=''
63                    class='noborder'
64                    id='olz-logo'
65                />
66                ZZZZZZZZZZ
67            : <<<ZZZZZZZZZZ
68                <img
69                    src='{$code_href}assets/icns/olz_logo.svg'
70                    alt=''
71                    class='noborder'
72                    id='olz-logo'
73                />
74                ZZZZZZZZZZ;
75
76        $out = <<<ZZZZZZZZZZ
77            <div id='header-bar' class='header-bar menu-closed'>
78                <div class='header-content'>
79                    {$hamburger_or_back_out}
80                    <div class='logo-container'>{$logo_out}</div>
81                    <div class='spacer'></div>
82                    <div class='account-menu-container'>{$account_menu_out}</div>
83                </div>
84                <div class='below-header'>
85                    <div id='menu-container' class='menu-container'>
86                        {$menu_out}
87                    </div>
88                </div>
89            </div>
90            ZZZZZZZZZZ;
91
92        return $out;
93    }
94}