1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
<?php
declare(strict_types=1);
/** @var FreshRSS_View $this */
?>
<header class="header">
<div class="item title">
<a href="<?= Minz_Url::display(['c' => 'index', 'a' => 'index'], 'html', 'root') ?>">
<?php if (FreshRSS_Context::systemConf()->logo_html == '') { ?>
<img class="logo" src="<?= _i('FreshRSS-logo', FreshRSS_Themes::ICON_URL) ?>" alt="FreshRSS" loading="lazy" />
<?php
} else {
echo FreshRSS_Context::systemConf()->logo_html;
}
?>
</a>
</div>
<div class="item search">
<?php if (FreshRSS_Auth::hasAccess() || FreshRSS_Context::systemConf()->allow_anonymous) { ?>
<form action="<?= $this->html_url ?>" method="get">
<?php if (Minz_Request::controllerName() === 'index'): ?>
<?php if (in_array(Minz_Request::actionName(), ['normal', 'global', 'reader'], true)) { ?>
<input type="hidden" name="a" value="<?= Minz_Request::actionName() ?>" />
<?php } if (Minz_Request::paramString('get') !== '') { ?>
<input type="hidden" name="get" value="<?= FreshRSS_Context::currentGet() ?>" />
<?php } if (Minz_Request::paramInt('state') !== 0) { ?>
<input type="hidden" name="state" value="<?= Minz_Request::paramInt('state') ?>" />
<?php } ?>
<?php endif; ?>
<?php if (Minz_Request::paramString('user') !== '') { ?>
<input type="hidden" name="user" value="<?= Minz_User::name() ?>" />
<?php } if (ctype_alnum(Minz_Request::paramString('t'))) { ?>
<input type="hidden" name="t" value="<?= Minz_Request::paramString('t') ?>" />
<?php } if (ctype_lower(Minz_Request::paramString('sort'))) { ?>
<input type="hidden" name="sort" value="<?= FreshRSS_Context::$sort ?>" />
<?php } if (ctype_upper(Minz_Request::paramString('order'))) { ?>
<input type="hidden" name="order" value="<?= FreshRSS_Context::$order ?>" />
<?php } if (ctype_lower(Minz_Request::paramString('f'))) { ?>
<input type="hidden" name="f" value="<?= Minz_Request::paramString('f') ?>" />
<?php } ?>
<div class="stick">
<input type="search" name="search" id="search"
value="<?= Minz_Request::paramString('search') ?>"
placeholder="<?= _t('gen.menu.search') ?>" />
<button class="btn" type="submit"><?= _i('search') ?></button>
</div>
</form>
<?php } ?>
</div>
<?php if (FreshRSS_Auth::hasAccess()) { ?>
<nav class="item configure">
<form id="post-csrf" method="post">
<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
</form>
<div class="dropdown">
<div id="dropdown-configure" class="dropdown-target"></div>
<a class="btn dropdown-toggle" href="#dropdown-configure"><?= _i('configure') ?></a>
<ul class="dropdown-menu scrollbar-thin">
<li class="dropdown-header-close"><a class="toggle_aside" href="#close"><?= _i('close') ?></a></li>
<li class="item dropdown-section">
<div class="dropdown-section-title">
<?= _t('gen.menu.account') ?>: <?= htmlspecialchars(Minz_User::name() ?? '', ENT_NOQUOTES, 'UTF-8') ?>
</div>
<ul>
<li class="item"><a href="<?= _url('user', 'profile') ?>"><?= _t('gen.menu.user_profile') ?></a></li>
<?php if (FreshRSS_Auth::accessNeedsAction()): ?>
<li class="item">
<button class="as-link signout" form="post-csrf" formaction="<?= _url('auth', 'logout') ?>"><?= _t('gen.auth.logout'); ?><?= _i('logout') ?></button>
</li>
<?php else: ?>
<li class="item"><span class="signout">(<?= htmlspecialchars(Minz_User::name() ?? '', ENT_NOQUOTES, 'UTF-8') ?>)</span></li>
<?php endif; ?>
</ul>
</li>
<li class="item dropdown-section">
<div class="dropdown-section-title">
<?= _t('gen.menu.configuration') ?>
</div>
<ul>
<li class="item"><a href="<?= _url('configure', 'display') ?>"><?= _t('gen.menu.display') ?></a></li>
<li class="item"><a href="<?= _url('configure', 'reading') ?>"><?= _t('gen.menu.reading') ?></a></li>
<li class="item"><a href="<?= _url('configure', 'archiving') ?>"><?= _t('gen.menu.archiving') ?></a></li>
<li class="item"><a href="<?= _url('configure', 'integration') ?>"><?= _t('gen.menu.sharing') ?></a></li>
<li class="item"><a href="<?= _url('configure', 'shortcut') ?>"><?= _t('gen.menu.shortcuts') ?></a></li>
<li class="item"><a href="<?= _url('configure', 'queries') ?>"><?= _t('gen.menu.queries') ?></a></li>
<li class="item"><a href="<?= _url('extension', 'index') ?>"><?= _t('gen.menu.extensions') ?></a></li>
<li class="item"><a href="<?= _url('configure', 'privacy') ?>"><?= _t('gen.menu.privacy') ?></a></li>
<?= Minz_ExtensionManager::callHookString(Minz_HookType::MenuConfigurationEntry) ?>
</ul>
</li>
<?php if (FreshRSS_Auth::hasAccess('admin')) { ?>
<li class="item dropdown-section">
<div class="dropdown-section-title">
<?= _t('gen.menu.admin') ?>
</div>
<ul>
<li class="item"><a href="<?= _url('configure', 'system') ?>"><?= _t('gen.menu.system') ?></a></li>
<li class="item"><a href="<?= _url('user', 'manage') ?>"><?= _t('gen.menu.user_management') ?></a></li>
<li class="item"><a href="<?= _url('auth', 'index') ?>"><?= _t('gen.menu.authentication') ?></a></li>
<li class="item"><a href="<?= _url('update', 'checkInstall') ?>"><?= _t('gen.menu.check_install') ?></a></li>
<?php if (!FreshRSS_Context::systemConf()->disable_update) { ?>
<li class="item"><a href="<?= _url('update', 'index') ?>"><?= _t('gen.menu.update') ?></a></li>
<?php } ?>
<?= Minz_ExtensionManager::callHookString(Minz_HookType::MenuAdminEntry) ?>
</ul>
</li>
<?php } ?>
<li class="item dropdown-section">
<ul>
<li class="item"><a href="<?= _url('index', 'logs') ?>"><?= _t('gen.menu.logs') ?></a></li>
<li class="item"><a href="<?= _url('index', 'about') ?>"><?= _t('gen.menu.about') ?></a></li>
<?php if (file_exists(TOS_FILENAME)) { ?>
<li class="item">
<a href="<?= _url('index', 'tos') ?>"><?= _t('index.tos.title')?></a>
</li>
<?php } ?>
<?= Minz_ExtensionManager::callHookString(Minz_HookType::MenuOtherEntry) ?>
</ul>
</li>
</ul>
<a class="dropdown-close" href="#close">❌</a>
</div>
</nav>
<?php } elseif (FreshRSS_Auth::accessNeedsAction()) { ?>
<div class="item configure">
<a class="signin" href="<?= Minz_Url::display(['c' => 'auth', 'a' => 'login'], 'html', 'root') ?>"><?= _i('login') ?><?= _t('gen.auth.login') ?></a>
</div>
<?php } ?>
</header>
|