+ADw?php include +ACI-vistas/modulos/alumno+AF8-nav.php+ACIAOw +ACQ-db +AD0 Conexion::conectar()+ADs +ACQ-idUsuario +AD0 +ACQAXw-SESSION+AFsAIg-id+ACIAXQA7 +ACQ-cursos +AD0 ControladorCursos::ctrMostrarCursos(+ACI-alumno+AF8-id+ACI, +ACQ-idUsuario)+ADs if (+ACE-is+AF8-array(+ACQ-cursos)) +AHs +ACQ-cursos +AD0 +AFsAXQA7 +AH0 +ACQ-cards +AD0 +AFsAXQA7 foreach (+ACQ-cursos as +ACQ-c) +AHs +ACQ-courseId +AD0 +ACQ-c+AFs'id'+AF0AOw +ACQ-stmtM +AD0 +ACQ-db-+AD4-prepare(+ACI SELECT id, modulo FROM modulos WHERE id+AF8-curso +AD0 :curso+AF8-id ORDER BY id ASC +ACI)+ADs +ACQ-stmtM-+AD4-execute(+AFs':curso+AF8-id' +AD0APg +ACQ-courseId+AF0)+ADs +ACQ-modules +AD0 +ACQ-stmtM-+AD4-fetchAll(PDO::FETCH+AF8-ASSOC)+ADs if (empty(+ACQ-modules)) +AHs +ACQ-cards+AFsAXQ +AD0 +AFs 'id' +AD0APg +ACQ-courseId, 'course+AF8-name' +AD0APg +ACQ-c+AFs'nombre'+AF0, 'materia' +AD0APg +ACQ-c+AFs'materia'+AF0 ?? 'General', 'docente' +AD0APg +ACQ-c+AFs'docente'+AF0 ?? 'Sin asignar', 'modulo+AF8-id' +AD0APg null +AF0AOw +AH0 else +AHs foreach (+ACQ-modules as +ACQ-mod) +AHs +ACQ-cards+AFsAXQ +AD0 +AFs 'id' +AD0APg +ACQ-courseId, 'course+AF8-name' +AD0APg +ACQ-c+AFs'nombre'+AF0 . ' - ' . +ACQ-mod+AFs'modulo'+AF0, 'materia' +AD0APg +ACQ-c+AFs'materia'+AF0 ?? 'General', 'docente' +AD0APg +ACQ-c+AFs'docente'+AF0 ?? 'Sin asignar', 'modulo+AF8-id' +AD0APg +ACQ-mod+AFs'id'+AF0 +AF0AOw +AH0 +AH0 +AH0 ?+AD4 +ADw-div class+AD0AIg-container mx-auto p-6 md:p-8 space-y-8+ACIAPg +ADw-div class+AD0AIg-flex flex-col md:flex-row items-start md:items-center justify-between gap-4+ACIAPg +ADw-div+AD4 +ADw-h1 class+AD0AIg-text-3xl font-bold tracking-tight+ACIAPg-Mis Cursos+ADw-/h1+AD4 +ADw-p class+AD0AIg-text-muted-foreground+ACIAPg-Accede a tus clases, materiales y calificaciones recientes.+ADw-/p+AD4 +ADw-/div+AD4 +ADw-/div+AD4 +ADw-div class+AD0AIg-grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6+ACIAPg +ADw?php if (empty(+ACQ-cards)): ?+AD4 +ADw-div class+AD0AIg-col-span-full text-center py-12 text-muted-foreground+ACIAPg No tienes cursos matriculados actualmente. +ADw-/div+AD4 +ADw?php else: ?+AD4 +ADw?php foreach (+ACQ-cards as +ACQ-card): ?+AD4 +ADw-div class+AD0AIg-rounded-xl border bg-card text-card-foreground shadow group hover:shadow-lg transition-shadow+ACIAPg +ADw-div class+AD0AIg-aspect-video relative overflow-hidden rounded-t-lg bg-primary/10 flex items-center justify-center+ACIAPg +ADw-i data-lucide+AD0AIg-book-open+ACI class+AD0AIg-w-12 h-12 text-primary opacity-60+ACIAPgA8-/i+AD4 +ADw-/div+AD4 +ADw-div class+AD0AIg-flex flex-col space-y-1.5 p-6 pb-3+ACIAPg +ADw-div class+AD0AIg-flex items-center justify-between mb-2+ACIAPg +ADw-span class+AD0AIg-text-xs font-medium text-primary+ACIAPgA8?+AD0 htmlspecialchars(+ACQ-card+AFsAIg-materia+ACIAXQ) ?+AD4APA-/span+AD4 +ADw-/div+AD4 +ADw-h3 class+AD0AIg-tracking-tight text-base md:text-lg font-semibold leading-snug+ACIAPgA8?+AD0 htmlspecialchars(+ACQ-card+AFsAIg-course+AF8-name+ACIAXQ) ?+AD4APA-/h3+AD4 +ADw-p class+AD0AIg-text-sm text-muted-foreground line-clamp-2 mb-2+ACIAPg-Docente: +ADw?+AD0 htmlspecialchars(+ACQ-card+AFsAIg-docente+ACIAXQ) ?+AD4APA-/p+AD4 +ADw-/div+AD4 +ADw-div class+AD0AIg-p-6 pt-0 space-y-4+ACIAPg +ADw-a href+AD0AIg-campus-course?id+AD0APA?+AD0 +ACQ-card+AFsAIg-id+ACIAXQ ?+AD4APA?+AD0 +ACQ-card+AFs'modulo+AF8-id'+AF0 ? '+ACY-modulo+AF8-id+AD0' . +ACQ-card+AFs'modulo+AF8-id'+AF0 : '' ?+AD4AIg class+AD0AIg-inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all bg-primary text-primary-foreground hover:bg-primary/90 h-9 px-4 w-full+ACIAPg Ingresar al Aula +ADw-/a+AD4 +ADw-/div+AD4 +ADw-/div+AD4 +ADw?php endforeach+ADs ?+AD4 +ADw?php endif+ADs ?+AD4 +ADw-/div+AD4 +ADw-/div+AD4 +ADw-/main+AD4 +ADw-/div+AD4-