navbar.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. /**
  3. * layouts/navbar.php
  4. *
  5. * Reusable top navigation bar.
  6. * Usage: include __DIR__.'/layouts/navbar.php';
  7. */
  8. $siteName = $siteName ?? 'Crop Management Platform';
  9. $navItems = $navItems ?? [
  10. [ 'href' => '/dashboard/dashboard.php', 'label' => 'Dashboard' ],
  11. [ 'href' => '/dashboard/crop-analysis/soil-analysis.php', 'label' => 'Soil Analysis' ],
  12. [ 'href' => '/dashboard/crop-analysis/soil-report.php', 'label' => 'Reports' ],
  13. [ 'href' => '/login/logout.php', 'label' => 'Logout' ],
  14. ];
  15. $activeItem = $activeItem ?? '';
  16. ?>
  17. <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  18. <div class="container-fluid">
  19. <a class="navbar-brand" href="/"><?= htmlspecialchars($siteName, ENT_QUOTES, 'UTF-8') ?></a>
  20. <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#topNavbar" aria-controls="topNavbar" aria-expanded="false" aria-label="Toggle navigation">
  21. <span class="navbar-toggler-icon"></span>
  22. </button>
  23. <div class="collapse navbar-collapse" id="topNavbar">
  24. <ul class="navbar-nav ms-auto mb-2 mb-lg-0">
  25. <?php foreach ($navItems as $item): ?>
  26. <li class="nav-item">
  27. <a class="nav-link<?= ($activeItem === $item['label'] ? ' active' : '') ?>" href="<?= htmlspecialchars($item['href'], ENT_QUOTES, 'UTF-8') ?>">
  28. <?= htmlspecialchars($item['label'], ENT_QUOTES, 'UTF-8') ?>
  29. </a>
  30. </li>
  31. <?php endforeach; ?>
  32. </ul>
  33. </div>
  34. </div>
  35. </nav>