date("Y-m-d H:i:s"), "alumno" => $alumno, "panels" => [ "quien_soy" => null, "calendar" => null, "calendario_diasemana" => null, "calendario_mes" => null, "actividades" => null, "menu" => null ] ]; file_put_contents($panel_file, json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); } } } function guardarPanelDiario($panel_name, $data, $alumno, $centro_id, $aulario_id) { $diario_path = getDiarioPath($alumno, $centro_id, $aulario_id); if ($diario_path) { $panel_file = $diario_path . "/Panel.json"; if (file_exists($panel_file)) { $existing = json_decode(file_get_contents($panel_file), true); if (is_array($existing)) { $existing["panels"][$panel_name] = [ "completed" => true, "timestamp" => date("Y-m-d H:i:s"), "data" => $data ]; file_put_contents($panel_file, json_encode($existing, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); } } } } // Manejo de AJAX para guardar paneles if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_GET['api'])) { header('Content-Type: application/json'); $api_action = $_GET['api']; $alumno = $_SESSION["aulatek_selected_alumno"] ?? ($_SESSION["entreaulas_selected_alumno"] ?? ''); $centro_id = $tenant_data["organizacion"] ?? ($tenant_data["centro"] ?? ''); if ($api_action === 'guardar_panel' && $alumno && $centro_id) { $input = json_decode(file_get_contents('php://input'), true); $panel_name = $input['panel'] ?? ''; $panel_data = $input['data'] ?? []; $aulario_id = $_SESSION["aulatek_selected_aulario"] ?? ($_SESSION["entreaulas_selected_aulario"] ?? ''); guardarPanelDiario($panel_name, $panel_data, $alumno, $centro_id, $aulario_id); echo json_encode(['success' => true]); die(); } } $form_action = $_GET["form"] ?? ""; switch ($form_action) { case "alumno_selected": $alumno = safe_id_segment($_GET["alumno"] ?? ""); $centro_id = safe_organization_id($tenant_data["organizacion"] ?? ($tenant_data["centro"] ?? "")); $aulario_id = safe_id_segment($_GET["aulario"] ?? ''); $photo_url = $_GET["photo"] ?? ''; if ($alumno !== "" && $centro_id !== "" && $aulario_id !== "") { $_SESSION["aulatek_selected_alumno"] = $alumno; $_SESSION["aulatek_selected_aulario"] = $aulario_id; $_SESSION["entreaulas_selected_alumno"] = $alumno; $_SESSION["entreaulas_selected_aulario"] = $aulario_id; initDiario($alumno, $centro_id, $aulario_id); // Guardar el panel "quien_soy" como completado con foto URL si existe $who_am_i_data = ["alumno" => $alumno]; if ($photo_url !== '') { $who_am_i_data["photoUrl"] = $photo_url; } guardarPanelDiario("quien_soy", $who_am_i_data, $alumno, $centro_id, $aulario_id); header("Location: paneldiario.php?aulario=" . urlencode($_GET["aulario"] ?? '')); die(); } break; } require_once "_incl/pre-body.php"; ini_set("display_errors", "0"); ?> $panel_value) { $progress[$panel_name] = !is_null($panel_value) && isset($panel_value['completed']); } } } } } // Contar paneles completados $paneles_totales = 6; // quien_soy, calendar, calendario_diasemana, calendario_mes, actividades, menu $paneles_completados = count(array_filter($progress)); $porcentaje = ($paneles_completados / $paneles_totales) * 100; $todos_completados = ($paneles_completados === $paneles_totales); $view_action = $_GET["action"] ?? "index"; switch ($view_action) { default: case "index": if ($alumno_actual): ?>
de paneles completados
Alumno:
Fecha:
Hora de registro:
Alumno seleccionado:
Día seleccionado:
Día de la semana:
Mes seleccionado:
Actividad:
Tipo de menú:
Error: No hay datos de diario disponibles.
'; endif; break; case "quien_soy": // ¿Quién soy? - Identificación del alumno $aulario_id = safe_id_segment($_GET["aulario"] ?? ''); $centro_id = safe_organization_id($tenant_data["organizacion"] ?? ($tenant_data["centro"] ?? '')); // Validate parameters if (empty($aulario_id) || empty($centro_id)) { echo 'Error: Parámetros inválidos.
No hay alumnos registrados en este aulario.
Para añadir alumnos, accede al inicio del aulario.