| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- declare(strict_types=1);
- // Shared page chrome for the admin UI. Pages set $pageTitle and optionally
- // $flashMessages / $flashErrors before including the header.
- require_once __DIR__ . "/bootstrap.php";
- function manageNavItems(): array
- {
- return [
- "index.php" => "Übersicht",
- "instances.php" => "Instanzen",
- "releases.php" => "Releases",
- "backups.php" => "Backups",
- "settings.php" => "Einstellungen",
- ];
- }
- function manageRenderHeader(string $pageTitle, array $messages = [], array $errors = []): void
- {
- $current = basename((string) ($_SERVER["SCRIPT_NAME"] ?? ""));
- ?>
- <!DOCTYPE html>
- <html lang="de">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title><?php echo manageEscape($pageTitle); ?> – Manage</title>
- <link rel="stylesheet" href="../assets/css/style.css">
- </head>
- <body>
- <header class="topbar">
- <div class="topbar-inner">
- <div class="brand">
- <span class="brand-name">Manage</span>
- <span class="brand-product"><?php echo manageEscape(manageProductName()); ?></span>
- </div>
- <nav class="topnav" aria-label="Hauptnavigation">
- <?php foreach (manageNavItems() as $file => $label): ?>
- <a href="<?php echo manageEscape($file); ?>"
- <?php echo $file === $current ? 'aria-current="page"' : ""; ?>>
- <?php echo manageEscape($label); ?>
- </a>
- <?php endforeach; ?>
- </nav>
- <form method="POST" action="logout.php" class="topbar-logout">
- <?php echo manageCsrfField(); ?>
- <button type="submit" class="btn btn-quiet">Abmelden</button>
- </form>
- </div>
- </header>
- <main class="container">
- <h1><?php echo manageEscape($pageTitle); ?></h1>
- <?php foreach ($messages as $message): ?>
- <p class="alert alert-success"><?php echo manageEscape($message); ?></p>
- <?php endforeach; ?>
- <?php foreach ($errors as $error): ?>
- <p class="alert alert-error"><?php echo manageEscape($error); ?></p>
- <?php endforeach; ?>
- <?php
- }
- function manageRenderFooter(): void
- {
- ?>
- </main>
- <footer class="footer">
- <div class="container">
- <p>Manage – Update- und Backup-Server für <?php echo manageEscape(manageProductName()); ?>.</p>
- <p><a href="../docs/index.php">Dokumentation</a></p>
- </div>
- </footer>
- </body>
- </html>
- <?php
- }
|