VanguardAI/app/Views/components/navbar.php
2024-10-27 12:50:51 -06:00

156 lines
6.3 KiB
PHP

<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<!-- Logo -->
<a class="navbar-brand" href="/home">
<?php echo $_ENV["APP_NAME"]; ?>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<?php
$modulos = include __DIR__ . "/../../Config/Modulos.php";
foreach ($modulos as $moduloPadre) {
// Módulo "Inicio" sin hijos
if ($moduloPadre["nombre"] === "Inicio") {
echo '<li class="nav-item">';
echo '<a class="nav-link" href="' .
htmlspecialchars(
$moduloPadre["ruta"],
ENT_QUOTES,
"UTF-8"
) .
'">';
echo '<i class="' .
htmlspecialchars(
$moduloPadre["icono"],
ENT_QUOTES,
"UTF-8"
) .
' me-2"></i>' .
htmlspecialchars(
$moduloPadre["nombre"],
ENT_QUOTES,
"UTF-8"
);
echo "</a>";
echo "</li>";
} elseif (
isset($moduloPadre["hijos"]) &&
!empty($moduloPadre["hijos"])
) {
// Módulos con submódulos
echo '<li class="nav-item dropdown">';
echo '<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">';
echo '<i class="' .
htmlspecialchars(
$moduloPadre["icono"],
ENT_QUOTES,
"UTF-8"
) .
' me-2"></i>' .
htmlspecialchars(
$moduloPadre["nombre"],
ENT_QUOTES,
"UTF-8"
);
echo "</a>";
echo '<ul class="dropdown-menu" aria-labelledby="navbarDropdown">';
foreach ($moduloPadre["hijos"] as $moduloHijo) {
echo '<li><a class="dropdown-item" href="' .
htmlspecialchars(
$moduloHijo["ruta"],
ENT_QUOTES,
"UTF-8"
) .
'">';
echo '<i class="' .
htmlspecialchars(
$moduloHijo["icono"],
ENT_QUOTES,
"UTF-8"
) .
' me-2"></i>';
echo htmlspecialchars(
$moduloHijo["nombre"],
ENT_QUOTES,
"UTF-8"
);
echo "</a></li>";
}
echo "</ul>";
echo "</li>";
} else {
// Módulos sin submódulos
echo '<li class="nav-item">';
echo '<a class="nav-link" href="' .
htmlspecialchars(
$moduloPadre["ruta"],
ENT_QUOTES,
"UTF-8"
) .
'">';
echo '<i class="' .
htmlspecialchars(
$moduloPadre["icono"],
ENT_QUOTES,
"UTF-8"
) .
' me-2"></i>' .
htmlspecialchars(
$moduloPadre["nombre"],
ENT_QUOTES,
"UTF-8"
);
echo "</a>";
echo "</li>";
}
}
?>
</ul>
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<form action="/logout" method="GET">
<button class="btn btn-danger" type="submit">Cerrar sesión</button>
</form>
</li>
</ul>
</div>
</div>
</nav>
<style>
/* Estilos para la navbar */
.navbar-nav .nav-link {
transition: background-color 0.3s ease, color 0.3s ease; /* Transición suave */
}
/* Efecto hover para los enlaces de la navbar */
.navbar-nav .nav-link:hover {
background-color: #007bff; /* Cambia a un azul más oscuro */
color: white; /* Cambia el color del texto a blanco */
border-radius: 0.25rem; /* Añadir bordes redondeados */
}
/* Efecto hover para los dropdowns */
.dropdown-menu {
transition: opacity 0.3s ease; /* Transición suave para el dropdown */
}
.dropdown-menu .dropdown-item:hover {
background-color: #f8f9fa; /* Cambia el fondo en hover */
color: #007bff; /* Cambia el color del texto */
}
/* Sombra sutil para la navbar */
.navbar {
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* Sombra sutil */
}
</style>