Documentation

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

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:

  1. Que no haya solapamiento con cursos ya existentes.
  2. Que la fecha de inicio no sea anterior a la fecha actual.
  3. 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
  1. Finaliza los cursos obsoletos (si los hay).
  2. Comprobamos que no hay curso activo y, si no lo hay, buscamos los que puedan estar pendientes.
  3. Activa el curso que estaba pendiente de iniciarse.

        
On this page

Search results