Show sourcecode
The following files exists in this folder. Click to view.
header.php
124 lines UTF-8 Windows (CRLF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
<?php
// header.php - Shared layout: topbar + sidebar + main content start
// Required variables before including:
// $basePath - relative path to project root (e.g. './', '../', '../../')
// $pageTitle - page title for <title> tag
// $activePage - identifier for active sidebar link
if (!isset($basePath)) $basePath = './';
if (!isset($pageTitle)) $pageTitle = 'Crumbs';
if (!isset($activePage)) $activePage = '';
// Session & auth
if (session_status() === PHP_SESSION_NONE) session_start();
$loggedIn = isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == 1;
$isAdmin = isset($_SESSION['is_admin']) && $_SESSION['is_admin'] == 1;
$userName = $loggedIn && isset($_SESSION['name']) ? htmlspecialchars($_SESSION['name']) : 'Guest';
$userLogin = $loggedIn && isset($_SESSION['username']) ? htmlspecialchars($_SESSION['username']) : $userName;
// Auth guard - redirect to login if not logged in
if (!$loggedIn) {
header('Location: ' . $basePath . 'login.php');
die();
}
?>
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?= htmlspecialchars($pageTitle) ?> | Crumbs</title>
<link rel="shortcut icon" href="<?= $basePath ?>icons/cookie_24dp_E3E3E3_FILL0_wght400_GRAD0_opsz24.svg" type="image/svg">
<link rel="stylesheet" href="<?= $basePath ?>style/stylesheet.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap">
</head>
<body>
<!-- Topbar -->
<header class="topbar">
<div class="topbar-left">
<button class="topbar-toggle" onclick="toggleSidebar()" aria-label="Toggle sidebar">
<span class="material-symbols-rounded">menu</span>
</button>
<a href="<?= $basePath ?>index.php" class="topbar-brand">
<span class="material-symbols-rounded">cookie</span>
Crumbs Demo
</a>
</div>
<div class="topbar-right">
<div class="topbar-user">
<span class="material-symbols-rounded">account_circle</span>
<span><?= $userName ?></span>
</div>
<!-- SÄKERHET: Utloggning via POST-formulär istället för GET-länk (skyddar mot CSRF) -->
<form method="post" action="<?= $basePath ?>logout.php" style="margin:0;display:inline;">
<button type="submit" class="topbar-logout" style="border:none;background:none;cursor:pointer;display:flex;align-items:center;gap:4px;color:inherit;font:inherit;padding:inherit;">
<span class="material-symbols-rounded" style="font-size:18px">logout</span>
Logga ut
</button>
</form>
</div>
</header>
<!-- Sidebar -->
<nav class="sidebar" id="sidebar">
<div class="sidebar-section">
<div class="sidebar-label">Meny</div>
<div class="sidebar-divider"></div>
<a href="<?= $basePath ?>index.php" class="sidebar-link <?= $activePage === 'dashboard' ? 'active' : '' ?>">
<span class="material-symbols-rounded">dashboard</span>
<span>Dashboard</span>
</a>
<a href="<?= $basePath ?>order/neworder.php" class="sidebar-link <?= $activePage === 'neworder' ? 'active' : '' ?>">
<span class="material-symbols-rounded">add_shopping_cart</span>
<span>Ny beställning</span>
</a>
<a href="<?= $basePath ?>order/vieworders.php" class="sidebar-link <?= $activePage === 'vieworders' ? 'active' : '' ?>">
<span class="material-symbols-rounded">receipt_long</span>
<span>Dina beställningar</span>
</a>
<?php if (!$isAdmin): ?>
</div>
<?php else: ?>
<div class="sidebar-label">Admin</div>
<div class="sidebar-divider"></div>
<a href="<?= $basePath ?>admin/orders/orders.php" class="sidebar-link <?= $activePage === 'admin-orders' ? 'active' : '' ?>">
<span class="material-symbols-rounded">list_alt</span>
<span>Beställningar</span>
</a>
<a href="<?= $basePath ?>admin/orders/statusdisplay.php" target="_blank" class="sidebar-link <?= $activePage === 'status-display' ? 'active' : '' ?>">
<span class="material-symbols-rounded">monitor</span>
<span>Status Display</span>
</a>
<a href="<?= $basePath ?>admin/products/addproduct.php" class="sidebar-link <?= $activePage === 'addproduct' ? 'active' : '' ?>">
<span class="material-symbols-rounded">add_box</span>
<span>Skapa produkt</span>
</a>
<a href="<?= $basePath ?>admin/products/editproduct.php" class="sidebar-link <?= $activePage === 'editproduct' ? 'active' : '' ?>">
<span class="material-symbols-rounded">edit_note</span>
<span>Hantera produkter</span>
</a>
<div class="sidebar-label">Användare</div>
<div class="sidebar-divider"></div>
<a href="<?= $basePath ?>admin/users/adduser.php" class="sidebar-link <?= $activePage === 'adduser' ? 'active' : '' ?>">
<span class="material-symbols-rounded">person_add</span>
<span>Skapa användare</span>
</a>
<a href="<?= $basePath ?>admin/users/edituser.php" class="sidebar-link <?= $activePage === 'edituser' ? 'active' : '' ?>">
<span class="material-symbols-rounded">manage_accounts</span>
<span>Redigera användare</span>
</a>
<a href="<?= $basePath ?>admin/users/deleteuser.php" class="sidebar-link <?= $activePage === 'deleteuser' ? 'active' : '' ?>">
<span class="material-symbols-rounded">person_remove</span>
<span>Ta bort användare</span>
</a>
</div>
<?php endif; ?>
</nav>
<!-- Mobile overlay -->
<div class="sidebar-overlay" onclick="toggleSidebar()"></div>
<!-- Main content -->
<main class="main-content">