| Server IP : 188.114.96.3 / Your IP : 216.73.216.143 Web Server : Apache System : Linux sv058.home.net.pl 6.8.2 husak_dirty_pages_fix #1 SMP PREEMPT_DYNAMIC Tue Apr 2 22:06:51 CEST 2024 x86_64 User : ( 3194769) PHP Version : 8.5.12 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /polana/includes/ |
Upload File : |
<?php
declare(strict_types=1);
function staff_portal_roles(): array { return ['waiter','kitchen']; }
function require_staff_portal(): array
{
require_login();
$user = admin_user();
if (!$user || !in_array((string)$user['role'], staff_portal_roles(), true)) {
http_response_code(403);
exit('Ten panel jest przeznaczony dla pracowników sali i kuchni.');
}
return $user;
}
function staff_role_label(string $role): string
{
return $role === 'kitchen' ? 'Kuchnia' : 'Kelner';
}
function render_staff_header(string $title, string $active = 'today'): void
{
$user = require_staff_portal();
$flashes = consume_flashes();
$name = (string)($user['name'] ?: $user['username']);
?>
<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<meta name="robots" content="noindex,nofollow">
<meta name="theme-color" content="#0b0b0b">
<title><?= e($title) ?> | Polana Smaków</title>
<link rel="manifest" href="/pracownik/manifest.webmanifest">
<link rel="icon" type="image/png" href="/assets/img/favicon.png">
<link rel="stylesheet" href="<?= e(asset_v('css/staff.css')) ?>">
<!-- TKLM-TRACKING-AUTO -->
<script defer src="/assets/tklm-tracking.js?v=2"></script>
<!-- /TKLM-TRACKING-AUTO -->
</head>
<body class="staff-app">
<header class="staff-topbar">
<a class="staff-brand" href="/pracownik/"><img src="<?= e(asset_v('img/logo.png')) ?>" alt="Polana Smaków"></a>
<div class="staff-user"><strong><?= e($name) ?></strong><small><?= e(staff_role_label((string)$user['role'])) ?></small></div>
</header>
<main class="staff-main">
<?php foreach ($flashes as $flash): ?>
<div class="staff-flash <?= ($flash['type'] ?? '') === 'error' ? 'is-error' : 'is-ok' ?>"><?= e((string)($flash['message'] ?? '')) ?></div>
<?php endforeach; ?>
<?php
}
function render_staff_footer(string $active = 'today'): void
{
$user = admin_user();
$items = [
'today' => ['/pracownik/', 'Dzisiaj', '⌂'],
'schedule' => ['/pracownik/grafik.php', 'Grafik', '▦'],
];
if (($user['role'] ?? '') === 'waiter') {
$items['reservations'] = ['/pracownik/rezerwacje.php', 'Rezerwacje', '◷'];
}
$items['tips'] = ['/pracownik/napiwki.php', 'Napiwki', 'zł'];
$items['profile'] = ['/pracownik/profil.php', 'Profil', '●'];
?>
</main>
<nav class="staff-bottom-nav" aria-label="Panel pracownika">
<?php foreach ($items as $key => [$href,$label,$icon]): ?>
<a class="<?= $active === $key ? 'is-active' : '' ?>" href="<?= e($href) ?>"><b><?= e($icon) ?></b><span><?= e($label) ?></span></a>
<?php endforeach; ?>
</nav>
<script src="<?= e(asset_v('js/staff.js')) ?>" defer></script>
</body>
</html>
<?php
}