156 lines
6.3 KiB
PHP
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>
|