38571-vm/includes/layout.php
Flatlogic Bot 9b7ccbdd3d versionone
2026-02-18 16:23:45 +00:00

75 lines
4.1 KiB
PHP

<?php
declare(strict_types=1);
function render_header(string $title, string $active = ''): void {
$projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? '';
$projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
$cartCount = cart_count();
$isActive = fn(string $key) => $active === $key ? 'active' : '';
echo "<!doctype html>\n";
echo "<html lang=\"en\">\n";
echo "<head>\n";
echo " <meta charset=\"utf-8\" />\n";
echo " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n";
echo " <title>" . e($title) . "</title>\n";
if ($projectDescription) {
echo " <meta name=\"description\" content=\"" . e($projectDescription) . "\" />\n";
echo " <meta property=\"og:description\" content=\"" . e($projectDescription) . "\" />\n";
echo " <meta property=\"twitter:description\" content=\"" . e($projectDescription) . "\" />\n";
}
if ($projectImageUrl) {
echo " <meta property=\"og:image\" content=\"" . e($projectImageUrl) . "\" />\n";
echo " <meta property=\"twitter:image\" content=\"" . e($projectImageUrl) . "\" />\n";
}
echo " <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n";
echo " <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n";
echo " <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\n";
echo " <link href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css\" rel=\"stylesheet\">\n";
echo " <link href=\"/assets/css/custom.css?v=" . time() . "\" rel=\"stylesheet\">\n";
echo "</head>\n";
echo "<body>\n";
echo "<nav class=\"navbar navbar-expand-lg sticky-top border-bottom bg-white\">\n";
echo " <div class=\"container\">\n";
echo " <a class=\"navbar-brand fw-semibold\" href=\"/index.php\">E-SO9</a>\n";
echo " <button class=\"navbar-toggler\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#siteNav\">\n";
echo " <span class=\"navbar-toggler-icon\"></span>\n";
echo " </button>\n";
echo " <div class=\"collapse navbar-collapse\" id=\"siteNav\">\n";
echo " <ul class=\"navbar-nav me-auto mb-2 mb-lg-0\">\n";
echo " <li class=\"nav-item\"><a class=\"nav-link " . $isActive('home') . "\" href=\"/index.php\">Home</a></li>\n";
echo " <li class=\"nav-item\"><a class=\"nav-link " . $isActive('shop') . "\" href=\"/shop.php\">Shop</a></li>\n";
echo " <li class=\"nav-item\"><a class=\"nav-link " . $isActive('track') . "\" href=\"/track.php\">Track Order</a></li>\n";
echo " <li class=\"nav-item\"><a class=\"nav-link " . $isActive('admin') . "\" href=\"/admin/orders.php\">Admin</a></li>\n";
echo " </ul>\n";
echo " <a class=\"btn btn-outline-secondary btn-sm\" href=\"/cart.php\">Cart <span class=\"badge text-bg-dark ms-1\">" . $cartCount . "</span></a>\n";
echo " </div>\n";
echo " </div>\n";
echo "</nav>\n";
}
function render_footer(): void {
$flash = flash_get();
echo "<footer class=\"border-top py-4 mt-5\">\n";
echo " <div class=\"container d-flex flex-column flex-md-row justify-content-between gap-2\">\n";
echo " <div class=\"text-muted small\">E-SO9 demo storefront and admin panel.</div>\n";
echo " <div class=\"text-muted small\">Payments run in demo mode.</div>\n";
echo " </div>\n";
echo "</footer>\n";
echo "<script src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js\"></script>\n";
echo "<script src=\"/assets/js/main.js?v=" . time() . "\"></script>\n";
if ($flash) {
$type = $flash['type'] === 'success' ? 'success' : 'warning';
echo "<div class=\"toast-container position-fixed bottom-0 end-0 p-3\">\n";
echo " <div class=\"toast align-items-center text-bg-" . $type . " border-0\" role=\"alert\" data-toast=\"auto\">\n";
echo " <div class=\"d-flex\">\n";
echo " <div class=\"toast-body\">" . e($flash['message']) . "</div>\n";
echo " <button type=\"button\" class=\"btn-close btn-close-white me-2 m-auto\" data-bs-dismiss=\"toast\"></button>\n";
echo " </div>\n";
echo " </div>\n";
echo "</div>\n";
}
echo "</body>\n</html>\n";
}