Curso_controlador
in package
Controlador encargado de la gestión de cursos.
Table of Contents
Properties
- $curso : mixed
Methods
- __construct() : mixed
- Constructor de la clase. Se instancia el modelo Curso.
- borrarCurso() : string
- Elimina un curso de la base de datos si no está en estado 'A' (Activo).
- iniciarCurso() : string
- Controlador para iniciar un nuevo curso académico.
- modificarCurso() : array<string|int, mixed>|string
- Modifica los datos de un curso existente si cumple con las condiciones de validación.
- obtenerCurso() : array<string|int, mixed>
- Recupera la información de un curso para su visualización o modificación.
- obtenerCursos() : array<string|int, mixed>
- Obtiene todos los cursos y los ordena para su presentación en la vista.
- verificarActivacionCurso() : mixed
- Este método se lanza en el momento en el que se carga la sidebar, asegurandonos de que siempre que acceda un usuario la aplicación se mantiene actualizada con el último curso activo.
Properties
$curso
private
mixed
$curso
Methods
__construct()
Constructor de la clase. Se instancia el modelo Curso.
public
__construct() : mixed
borrarCurso()
Elimina un curso de la base de datos si no está en estado 'A' (Activo).
public
borrarCurso() : string
Este método obtiene el ID del curso desde la URL ($_GET['id']), recupera sus datos,
y verifica si su estado es 'A'. Si el curso está activo, no se elimina y se redirige
al listado de cursos. Si no está activo, procede a eliminarlo de la base de datos.
Return values
string —- Devuelve la acción 'listadoCursos' si el curso está activo y no se elimina o 'avisoexito' si la eliminación fue realizada con éxito.
iniciarCurso()
Controlador para iniciar un nuevo curso académico.
public
iniciarCurso() : string
Este método se encarga de gestionar la creación de un nuevo curso, validando los siguientes aspectos:
- Que no haya solapamiento con cursos ya existentes.
- Que la fecha de inicio no sea anterior a la fecha actual.
- Que la fecha de inicio sea anterior a la de finalización.
Si las validaciones son correctas, calcula el año académico (en formato 'yy/yy') y llama al modelo para insertar el nuevo curso.
Return values
string —- Vista que debe renderizarse: "formnuevocurso" si hay errores, coincidencias de fechas o si no se ha enviado POST y "avisoexito" si se crea correctamente.
modificarCurso()
Modifica los datos de un curso existente si cumple con las condiciones de validación.
public
modificarCurso() : array<string|int, mixed>|string
Este método se activa al recibir una petición POST. Realiza múltiples validaciones:
- Que el curso exista.
- Que su estado sea 'A' (Activo) o 'P' (Pendiente).
- Que las nuevas fechas no estén en el pasado.
- Que la fecha de inicio sea anterior a la de fin.
- Que no haya solapamiento de fechas con otros cursos (excepto consigo mismo).
- Que no existan solicitudes anteriores a la nueva fecha de fin, si el curso está activo.
Si alguna validación falla, devuelve la vista del formulario con el curso original. Si todo es correcto, actualiza el curso en la base de datos y retorna 'avisoexito'.
Return values
array<string|int, mixed>|string —- Devuelve un array con la vista y los datos del curso si hay error o el nombre de la vista 'avisoexito' si la modificación fue exitosa.
obtenerCurso()
Recupera la información de un curso para su visualización o modificación.
public
obtenerCurso([int|null $idCurso = null ]) : array<string|int, mixed>
- Si no se proporciona un ID como argumento, intenta obtenerlo desde $_GET['id'].
- Si no hay un ID válido o si el curso no existe o está finalizado ('F') redirige al listado de cursos.
- Si el curso existe y es modificable se retorna la vista con el formulario de modificación y los datos del curso.
Parameters
- $idCurso : int|null = null
-
- ID del curso a obtener. Si es null, se intenta recuperar de $_GET.
Return values
array<string|int, mixed> —- Devuelve un array asociativo con la clave 'vista' y, si corresponde,los datos del curso bajo la clave 'curso'.
obtenerCursos()
Obtiene todos los cursos y los ordena para su presentación en la vista.
public
obtenerCursos() : array<string|int, mixed>
Los cursos se ordenan primero por estado con el siguiente orden de prioridad:
- 'A' (Activo)
- 'P' (Pendiente)
- 'F' (Finalizado)
Dentro de cada grupo de estado, los cursos, son ordenanos por año académico de forma descendente (por ejemplo, '24-25' aparece antes que '23-24').
Return values
array<string|int, mixed> —- Retorna un array asociativo con: 'accion' (el nombre de la vista a cargar) | 'cursos' (el array de cursos ya ordenado)
verificarActivacionCurso()
Este método se lanza en el momento en el que se carga la sidebar, asegurandonos de que siempre que acceda un usuario la aplicación se mantiene actualizada con el último curso activo.
public
verificarActivacionCurso() : mixed
- Finaliza los cursos obsoletos (si los hay).
- Comprobamos que no hay curso activo y, si no lo hay, buscamos los que puedan estar pendientes.
- Activa el curso que estaba pendiente de iniciarse.