# Sistema de Layouts y Permisos

## 📋 Arquitectura Implementada

Este sistema implementa una arquitectura profesional basada en layouts y componentes reutilizables.

### **Estructura:**

```
plantilla023/src/
├── layouts/
│   └── base.php              (Layout principal)
├── includes/
│   ├── sidebar.php           (Componente sidebar dinámico)
│   ├── navbar.php            (Componente navbar)
│   ├── menu-config.php       (Configuración del menú)
│   ├── permissions.php       (Sistema de permisos)
│   └── render-menu.php      (Renderizado del menú)
├── helpers/
│   └── view-helper.php       (Helper para renderizar vistas)
└── [vistas existentes]       (Sin modificar - funcionan igual)
```

---

## 🎯 Cómo Usar el Nuevo Sistema

### **Opción 1: Crear Nueva Vista (Recomendado)**

```php
<?php
// views/operaciones/nueva-vista.php
require_once __DIR__ . '/../../helpers/view-helper.php';

// Configurar metadatos
$pageTitle = 'GPSPHONNEX - Nueva Vista';
$pageDescription = 'Descripción de la nueva vista';

// Agregar estilos personalizados (opcional)
addCustomStyles('
    <style>
        .mi-estilo {
            color: blue;
        }
    </style>
');

// Agregar scripts personalizados (opcional)
addCustomScripts('
    <script>
        console.log("Mi script personalizado");
    </script>
');

// Contenido de la vista
ob_start();
?>
<div class="container-fluid">
    <h1>Mi Nueva Vista</h1>
    <p>Contenido aquí...</p>
</div>
<?php
$pageContent = ob_get_clean();

// Renderizar usando el layout
renderView(__FILE__, compact('pageTitle', 'pageDescription', 'pageContent'));
?>
```

### **Opción 2: Versión Simplificada**

```php
<?php
require_once __DIR__ . '/../../helpers/view-helper.php';

$pageTitle = 'GPSPHONNEX - Mi Vista';
$pageContent = '<div class="container-fluid"><h1>Mi Vista</h1></div>';

renderView(__FILE__, compact('pageTitle', 'pageContent'));
?>
```

---

## 🔒 Sistema de Permisos

El menú se genera automáticamente según el rol del usuario (`us_tipo`):

- **`us_tipo='1'`**: Administrador - Ve todos los módulos
- **`us_tipo='0'`**: Usuario Normal - Ve módulos limitados (sin Administrador)
- **`us_tipo='12'`**: Usuario Móvil - Solo monitoreo
- **`us_tipo='13'`**: Usuario Temperatura - Solo reportes temperatura
- **`us_tipo='2'`, `'5'`, `'8'`, `'9'`, `'10'`**: Permisos específicos según rol

---

## ⚠️ IMPORTANTE

**Las vistas existentes NO han sido modificadas.** Siguen funcionando igual que antes.

Para migrar una vista al nuevo sistema:
1. Extrae solo el contenido HTML (sin `<html>`, `<head>`, `<body>`, sidebar, navbar)
2. Usa `renderView()` con el contenido
3. El layout se encarga del resto

---

## 📝 Próximos Pasos

1. ✅ Arquitectura base implementada
2. ⏳ Migrar vistas gradualmente (opcional)
3. ⏳ Agregar validación de permisos en vistas (opcional)

