From 01334b44e6959a615054ec8a6cd05584fd351529 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Mon, 16 Nov 2015 13:28:24 +0100 Subject: [PATCH] =?UTF-8?q?Affichage=20par=20semestre=20enseignant@mes=5Fm?= =?UTF-8?q?odules=20+=20admin@tous=5Fles=5Fmodules=20+=20enseignant@contr?= =?UTF-8?q?=C3=B4les?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/career.php | 8 +-- manager/database.php | 73 +++++++-------------- manager/modules.php | 10 +-- manager/repo/semestre.php | 31 ++++++++- manager/repo/ue.php | 14 ++--- page/_JS/career.js | 13 +++- page/career.php | 121 +++++++++++++++++++++++------------ page/modules.php | 129 +++++++++++++++++++++++++++++++------- 8 files changed, 266 insertions(+), 133 deletions(-) diff --git a/manager/career.php b/manager/career.php index 759d2ff..e1771c5 100755 --- a/manager/career.php +++ b/manager/career.php @@ -74,13 +74,13 @@ require_once __ROOT__.'/manager/database.php'; $anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons - $UEs = DataBase::getInstance()->getControlesEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee); + $semestreList = DataBase::getInstance()->getControlesEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee); - if( is_array($UEs) ){ // si on a bien un tableau - $answer->UEs = $UEs; // on renvoie dans answer->UEs + if( is_array($semestreList) ){ // si on a bien un tableau + $answer->semestres = $semestreList; // on renvoie dans answer->semestreList $answer->request = 'success'; // et on renvoie success }else // sinon si c'est pas un tableau - $answer->request = $UEs; // on retourne l'erreur + $answer->request = $semestreList; // on retourne l'erreur }else $answer->request = 'param_error'; diff --git a/manager/database.php b/manager/database.php index 2a9511d..af5c681 100755 --- a/manager/database.php +++ b/manager/database.php @@ -385,52 +385,21 @@ class DataBase{ // on vérifie que l'enseignant enseigne bien cette année if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher'; - $UEList = $this->getUEsEnseignant($enseignant, $semestre_pair, $annee); // on récupère la liste des UEs + // on récupère les semestres de cette année + $semestreList = semestreRepo::forTeacher($enseignantUID, $semestre_pair, $annee); - foreach($UEList as $iter=>$UE){ + foreach($semestreList as $iter_s=>$a){ + $semestreList[$iter_s]['UElist'] = ueRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['id']); - // si on a l'UID enseignant & l'UE => on récupère les modules - $getModuleList = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom as nom, m.libelle as libelle ". - "FROM enseignement as ens, semestre as s, ue, module as m, mcc_ue, mcc_module as mcc_m ". - "WHERE ens.id_mcc_module = mcc_m.id_mcc_module ". - "AND mcc_m.id_module = m.id_module ". - "AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ". - "AND mcc_ue.id_ue = ue.id_ue ". + foreach($semestreList[$iter_s]['UElist'] as $iter_u=>$b) + $semestreList[$iter_s]['UElist'][$iter_u]['modules'] = moduleRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['UElist'][$iter_u]['id'], $semestreList[$iter_s]['id']); - "AND ens.id_enseignant = :enseignantUID ". - "AND ue.id_ue = :UEUID ". - "AND s.annee = :annee ". - "AND s.rang % 2 = :semestre_pair ". - "ORDER BY m.nom, m.libelle ASC"); - $getModuleList->execute(array( - ':enseignantUID' => $enseignantUID, - ':UEUID' => $UE['id'], - ':annee' => $annee, - ':semestre_pair' => ($semestre_pair) ? '0' : '1' - )); - - // on ajoute la liste des modules en supprimant les valeurs à indinces numériques - $UEList[$iter]['modules'] = DataBase::delNumeric( $getModuleList->fetchAll() ); } - return $UEList; + return $semestreList; } - /****************************************/ - /*** retourne les UEs d'un enseignant ***/ - /****************************************/ - public function getUEsEnseignant($enseignant, $semestre_pair, $annee){ - // on vérifie que l'enseignant enseigne bien cette année - if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher'; - - // on retourne la liste des UEs en supprimant les doublons à indices numériques - return ueRepo::forTeacher($enseignantUID, $semestre_pair, $annee); - } - - - - @@ -542,28 +511,34 @@ class DataBase{ public function getControlesEnseignant($enseignant, $semestre_pair, $annee){ // on vérifie que le semestre existe et que l'enseignant y enseigne if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher'; + debug(); + // on récupère les semestres de cette année + $semestreList = semestreRepo::forTeacher($enseignantUID, $semestre_pair, $annee); + foreach($semestreList as $iter_s=>$a){ - $UEList = ueRepo::forTeacher($enseignantUID, $semestre_pair, $annee); + $semestreList[$iter_s]['UElist'] = ueRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['id']); - foreach($UEList as $iter_ue=>$a){ - $UEList[$iter_ue]['modules'] = moduleRepo::forTeacher($enseignantUID, $UEList[$iter_ue]['id'], $UEList[$iter_ue]['id_semestre']); + foreach($semestreList[$iter_s]['UElist'] as $iter_u=>$b){ + $semestreList[$iter_s]['UElist'][$iter_u]['modules'] = moduleRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['UElist'][$iter_u]['id'], $semestreList[$iter_s]['id']); - foreach($UEList[$iter_ue]['modules'] as $iter_mod=>$b){ - $UEList[$iter_ue]['modules'][$iter_mod]['controles'] = controleRepo::forTeacher($enseignantUID, $UEList[$iter_ue]['modules'][$iter_mod]['id'], $UEList[$iter_ue]['id_semestre']); - - foreach($UEList[$iter_ue]['modules'][$iter_mod]['controles'] as $iter_ct=>$c){ - $UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['grouplist'] = noteRepo::forTeacher($UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['id']); + foreach($semestreList[$iter_s]['UElist'][$iter_u]['modules'] as $iter_m=>$c){ + $semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'] = controleRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['id'], $semestreList[$iter_s]['id']); + + foreach($semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'] as $iter_ct=>$c){ + $semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'][$iter_ct]['grouplist'] = noteRepo::forTeacher($semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'][$iter_ct]['id']); - $UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['moyenne'] = noteRepo::moyenneForControle($UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['id']); + $semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'][$iter_ct]['moyenne'] = noteRepo::moyenneForControle($semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'][$iter_ct]['id']); + + } } } - } + } - return $UEList; + return $semestreList; } diff --git a/manager/modules.php b/manager/modules.php index 5d6c2e5..0fdf249 100755 --- a/manager/modules.php +++ b/manager/modules.php @@ -82,16 +82,16 @@ require_once __ROOT__.'/manager/database.php'; $anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons - $UEList = DataBase::getInstance()->getModulesByUEByEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee); + $semestreList = DataBase::getInstance()->getModulesByUEByEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee); // STRUCTURE // tableau d'UES contenant un tableau de MODULES - if( is_array($UEList) ){ // si on a bien un tableau - $answer->UEs = $UEList; // on renvoie dans answer->ues + if( is_array($semestreList) ){ // si on a bien un tableau + $answer->semestres = $semestreList; // on renvoie dans answer->ues $answer->request = 'success'; // et on renvoie success }else // sinon si c'est pas un tableau - $answer->request = $UEList; // on retourne l'erreur + $answer->request = $semestreList; // on retourne l'erreur }else $answer->request = 'param_error'; @@ -121,7 +121,7 @@ require_once __ROOT__.'/manager/database.php'; $answer->semestres = $semestreList; // on renvoie dans answer->ues $answer->request = 'success'; // et on renvoie success }else // sinon si c'est pas un tableau - $answer->request = $UEList; // on retourne l'erreur + $answer->request = $semestreList; // on retourne l'erreur }else $answer->request = 'param_error'; diff --git a/manager/repo/semestre.php b/manager/repo/semestre.php index 363ac97..6e1a027 100755 --- a/manager/repo/semestre.php +++ b/manager/repo/semestre.php @@ -110,6 +110,35 @@ class semestreRepo extends DBAccess{ + /* retourne la liste des semestres qu'à un enseignant + * + * @enseignant l'UID de l'enseignant en question + * @semestre_pair VRAI si le semestre en cours est pair + * @annee l'année en question + * + * + * @return semestres retourne la liste des semestres répondant aux critères + * @return FALSE retourne FALSE si aucun semestre ne correspond aux critères + * + */ + public static function forTeacher($enseignant, $semestre_pair, $annee){ + $getSemestreList = DataBase::getPDO()->prepare("SELECT DISTINCT s.id_semestre as id, f.code as formation, f.nom as nom_formation, s.nom, s.rang, s.annee ". + "FROM semestre as s, formation as f, enseignement as ens, mcc_module as mcc_m, mcc_ue ". + "WHERE s.id_semestre = mcc_ue.id_semestre ". // semestre <-> mcc_ue + "AND s.formation = f.id_formation ". // semestre <-> formation + "AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ". // mcc_ue <-> mcc_module + "AND mcc_m.id_mcc_module = ens.id_mcc_module ". // mcc_module <-> enseignement + + "AND ens.id_enseignant = :enseignant ". + "AND s.rang % 2 = :semestre_pair ". + "AND s.annee = :annee ". + "ORDER BY s.rang ASC"); + $getSemestreList->execute(array( ':enseignant' => $enseignant, ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee )); + + return DataBase::delNumeric( $getSemestreList->fetchAll() ); + } + + /* retourne la liste des semestres d'une année * * @annee l'année en question @@ -120,7 +149,7 @@ class semestreRepo extends DBAccess{ * */ public static function forYear($annee){ - $getSemestreList = DataBase::getPDO()->prepare("SELECT s.id_semestre as id, f.code as formation, f.nom as nom_formation, s.nom, s.rang, s.annee ". + $getSemestreList = DataBase::getPDO()->prepare("SELECT DISTINCT s.id_semestre as id, f.code as formation, f.nom as nom_formation, s.nom, s.rang, s.annee ". "FROM semestre as s, formation as f ". "WHERE s.formation = f.id_formation ". "AND annee = :annee ". diff --git a/manager/repo/ue.php b/manager/repo/ue.php index 733c9bb..9be1d26 100755 --- a/manager/repo/ue.php +++ b/manager/repo/ue.php @@ -73,16 +73,15 @@ class ueRepo extends DBAccess{ - /* RENVOIE LA LISTE DES UEs QU'ENSEIGNE UN ENSEIGNANT POUR UNE ANNEE + /* RENVOIE LA LISTE DES UEs QU'ENSEIGNE UN ENSEIGNANT POUR UN SEMESTRE * * @enseignant Identifiant de l'enseignant - * @semestre_pair VRAI si le semestre est pair - * @annee l'année en cours + * @semestre l'UID du semestre en question * - * @return UEs retourne un tableau contenant les UEs de l'enseignant pour cette année + * @return UEs retourne un tableau contenant les UEs de l'enseignant pour ce semestre * */ - public static function forTeacher($enseignant, $semestre_pair, $annee){ + public static function forTeacher($enseignant, $semestre){ // on récupère les modules $getUesForTeacher = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.id_semestre, s.nom as semestre, s.annee, ue.nom, ue.libelle ". "FROM enseignement as ens, semestre as s, ue, mcc_ue, mcc_module as mcc_m ". @@ -93,11 +92,10 @@ class ueRepo extends DBAccess{ "AND mcc_ue.id_ue = ue.id_ue ". "AND ens.id_enseignant = :enseignant ". - "AND s.rang % 2 = :semestre_pair ". - "AND s.annee = :annee ". + "AND s.id_semestre = :semestre ". "ORDER BY ue.nom, ue.libelle ASC"); - $getUesForTeacher->execute(array( ':enseignant' => $enseignant, ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee )); + $getUesForTeacher->execute(array( ':enseignant' => $enseignant, ':semestre' => $semestre )); return DataBase::delNumeric( $getUesForTeacher->fetchAll() ); } diff --git a/page/_JS/career.js b/page/_JS/career.js index 1bd63b7..e68d675 100644 --- a/page/_JS/career.js +++ b/page/_JS/career.js @@ -5,16 +5,23 @@ /********************************/ /* GESTION DE L'AFFINAGE PAR UE */ /********************************/ -var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=UE]"); +var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=UE], #CONTAINER > section[name] > table.partlist[name=semestre]"); for( var i = 0 ; i < partList.length ; i++ ){ partList[i].addEventListener('click', function(e){ var tableauParent = e.target.parentNode.parentNode.parentNode; - if( tableauParent.tagName == 'TABLE' && tableauParent.getAttribute('name') == 'UE' && e.target.dataset.hasOwnProperty('value') ){ - pageM.vars[1] = 'u:'+e.target.dataset.value; + if( tableauParent.tagName == 'TABLE' && e.target.dataset.hasOwnProperty('value') ){ + /* SI c'est une affinage par SEMESTRE */ + if( tableauParent.getAttribute('name') == 'semestre' ) + pageM.vars[1] = 's:'+e.target.dataset.value; + + /* SI c'est un affinage par UE */ + if( tableauParent.getAttribute('name') == 'UE' ) + pageM.vars[1] = 'u:'+e.target.dataset.value; + // si on a '*' comme valeur, on l'enlève if( /\*$/.test(pageM.vars[1]) ) pageM.vars.pop(); diff --git a/page/career.php b/page/career.php index 2ba187e..ff565cf 100755 --- a/page/career.php +++ b/page/career.php @@ -5,8 +5,6 @@ require_once __ROOT__.'/manager/modules.php'; require_once __ROOT__.'/manager/career.php'; - - /*** GESTION DES PARAMETRES OPTIONNELS ***/ // on initialise les paramètres optionnels @@ -14,6 +12,7 @@ require_once __ROOT__.'/manager/career.php'; $groupeOpt = null; $etudiantOpt = null; $ueOpt = null; + $semestreOpt = null; // on cherche dans toutes les variables _get si on trouve des paramètres foreach($_POST as $k=>$v){ @@ -21,21 +20,25 @@ require_once __ROOT__.'/manager/career.php'; if( preg_match('/^g:(.+)$/', $k, $m) ) // g:nomGroupe $groupeOpt = $m[1]; - if( preg_match('/^c:(.+)$/', $k, $m) ) // s:nomSemestre + if( preg_match('/^c:(.+)$/', $k, $m) ) // c:idControle $controleOpt = $m[1]; - if( preg_match('/^e:(.+)$/', $k, $m) ) // s:nomSemestre + if( preg_match('/^e:(.+)$/', $k, $m) ) // e:idEtudiant $etudiantOpt = $m[1]; - if( preg_match('/^u:(.+)$/', $k, $m) ) // s:nomSemestre + if( preg_match('/^u:(.+)$/', $k, $m) ) // u:nomUe $ueOpt = $m[1]; + if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre + $semestreOpt = $m[1]; + } $controleOpt = ($controleOpt == null || $controleOpt == '*') ? null : $controleOpt; $groupeOpt = ($groupeOpt == null || $groupeOpt == '*') ? null : $groupeOpt; $etudiantOpt = ($etudiantOpt == null || $etudiantOpt == '*') ? null : $etudiantOpt; $ueOpt = ($ueOpt == null || $ueOpt == '*') ? null : $ueOpt; + $semestreOpt = ($semestreOpt == null || $semestreOpt == '*') ? null : $semestreOpt; /**************************************** * * @@ -63,7 +66,6 @@ require_once __ROOT__.'/manager/career.php'; if( permission('student') ){ // si l'utilisateur est connecté et que c'est un élève $request = new stdClass(); $answer = new stdClass(); - debug(); $request->level_1 = 'getNotesEtudiant'; $request->etudiant = $_SESSION['identifiant']; @@ -157,7 +159,6 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e $request->level_1 = 'getControlesEnseignant'; $request->enseignant = $_SESSION['identifiant']; - $request->semestre = $_SESSION['semestre']; $request->annee = $_SESSION['annee']; career_switch_level_1($request, $answer); @@ -167,61 +168,101 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e echo "
"; + /* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */ + $ListeNomsSemestres = array(); + $ListeNomsUE = array(); + foreach($answer->semestres as $semestre){ + array_push( $ListeNomsSemestres, $semestre['nom'] ); + + /* ON RECUPERE UNE LISTE UNIQUE DES UEs */ + foreach($semestre['UElist'] as $UE) + array_push( $ListeNomsUE, $UE['nom'] ); + } + + $ListeNomsSemestres = array_unique($ListeNomsSemestres); + $ListeNomsUE = array_unique($ListeNomsUE); + + echo ""; + if( $semestreOpt == null ) echo ""; + else echo ""; + + foreach($ListeNomsSemestres as $NomSemestre) + if( $NomSemestre == $semestreOpt ) // si c'est le semestre séléctionné + echo "'; + else // sinon on affiche normalement + echo "'; + echo "
TousTous".$NomSemestre.'".$NomSemestre.'
"; + + + + + echo ""; if( $ueOpt == null ) echo ""; else echo ""; - foreach($answer->UEs as $UE) - if( $UE['nom'] == $ueOpt ) // si c'est le semestre séléctionné - echo "'; + foreach($ListeNomsUE as $NomUE) + if( $NomUE == $ueOpt ) // si c'est le semestre séléctionné + echo "'; else // sinon on affiche normalement - echo "'; + echo "'; echo "
TousTous".$UE['nom'].'".$NomUE.'".$UE['nom'].'".$NomUE.'
"; - if( count($answer->UEs) > 0 ){ // si au moins un UE - foreach($answer->UEs as $UE){ // pour chaque UE - if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // on affiche l'UE en fonction du paramètre passé par l'URL + if( count($answer->semestres) > 0 ){ // si au moins un UE - if( count($UE['modules']) > 0 ){ // s'il y a au moins un module + foreach($answer->semestres as $semestre){ - foreach($UE['modules'] as $module){ // pour chaque module - echo ""; - echo ''; + if( $semestreOpt == null || $semestre['nom'] == $semestreOpt ){ // on affiche les semestres en fonction de l'affinage - if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module + foreach($semestre['UElist'] as $UE){ // pour chaque UE - foreach($module['controles'] as $controle){ // pour chaque contrôle + if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // on affiche l'UE en fonction du paramètre passé par l'URL - echo ''; - echo ""; - - echo ""; + if( count($UE['modules']) > 0 ){ // s'il y a au moins un module - if( $controle['moyenne'] == null ) // si il y a au moins une note pour ce contrôle - echo ''; - else - echo ''; - // echo ''; - - echo ''; - echo ''; - - // echo "'; + foreach($UE['modules'] as $module){ // pour chaque module + echo "
'.$UE['nom'].' - '.$module['nom'].' - '.$module['libelle'].'
".$controle['intitule']."".$module['nom']." - ".$module['libelle']."Pas notéMoyenne de '.number_format($controle['moyenne'], 2).' / '.$controle['base'].''.number_format($controle['moyenne'], 2).'Coefficient '.number_format($controle['coefficient'], 2).'
"; - // echo '
"; + echo ''; + + if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module + + foreach($module['controles'] as $controle){ // pour chaque contrôle + + echo ''; + echo ""; + + echo ""; + echo ""; + + if( $controle['moyenne'] == null ) // si il y a au moins une note pour ce contrôle + echo ''; + else + echo ''; + // echo ''; + + echo ''; + echo ''; + + // echo "'; + } + + }else // si aucun contrôle pour ce module + echo ""; + + echo ''; } - }else // si aucun contrôle pour ce module - echo ""; + } + echo '
'.$semestre['nom_formation'].' - '.$semestre['nom'].'
".$controle['intitule']."".$module['nom']." - ".$module['libelle']."".$UE['nom']." - ".$UE['libelle']."Pas notéMoyenne de '.number_format($controle['moyenne'], 2).' / '.$controle['base'].''.number_format($controle['moyenne'], 2).'Coefficient '.number_format($controle['coefficient'], 2).'
"; + // echo '
Aucun contrôle trouvé
Aucun contrôle trouvé
'; - echo ''; } - } - echo ''; } + } } diff --git a/page/modules.php b/page/modules.php index 7fb7a7d..2783814 100755 --- a/page/modules.php +++ b/page/modules.php @@ -102,6 +102,28 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un + + + + + + + + + + + + + + + + + + + + + + "; + /* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */ + $ListeNomsSemestres = array(); + $ListeNomsUE = array(); + foreach($answer->semestres as $semestre){ + array_push( $ListeNomsSemestres, $semestre['nom'] ); + + /* ON RECUPERE UNE LISTE UNIQUE DES UEs */ + foreach($semestre['UElist'] as $UE) + array_push( $ListeNomsUE, $UE['nom'] ); + } + + $ListeNomsSemestres = array_unique($ListeNomsSemestres); + $ListeNomsUE = array_unique($ListeNomsUE); + + echo ""; + if( $semestreOpt == null ) echo ""; + else echo ""; + + foreach($ListeNomsSemestres as $NomSemestre) + if( $NomSemestre == $semestreOpt ) // si c'est le semestre séléctionné + echo "'; + else // sinon on affiche normalement + echo "'; + echo "
TousTous".$NomSemestre.'".$NomSemestre.'
"; + + + + echo ""; if( $ueOpt == null ) echo ""; else echo ""; - foreach($answer->UEs as $UE) - if( $UE['nom'] == $ueOpt ) // si c'est le semestre séléctionné - echo "'; + foreach($ListeNomsUE as $NomUE) + if( $NomUE == $ueOpt ) // si c'est le semestre séléctionné + echo "'; else // sinon on affiche normalement - echo "'; + echo "'; echo "
TousTous".$UE['nom'].'".$NomUE.'".$UE['nom'].'".$NomUE.'
"; - foreach($answer->UEs as $UE){ - if( $ueOpt == null || $UE['nom'] == $ueOpt ){ - - echo ""; - echo ""; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - foreach($UE['modules'] as $MODULE){ - echo ''; - echo ''; - echo ''; - echo ''; - } - - echo ''; - echo '
'.$UE['semestre'].' - '.$UE['nom'].' - '.$UE['libelle'].'
'.$MODULE['nom'].''.$MODULE['libelle'].'
'; + foreach($answer->semestres as $semestre){ + + if( $semestreOpt == null || $semestre['nom'] == $semestreOpt ){ // on affiche les semestres en fonction de l'affinage + + foreach($semestre['UElist'] as $UE){ + + if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // on affiche les UEs en fonction de l'affinage + + echo ""; + echo ""; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + foreach($UE['modules'] as $MODULE){ + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + + echo ''; + echo '
'.$semestre['nom_formation'].' - '.$semestre['nom'].'
'.$MODULE['nom'].''.$MODULE['libelle'].''.$UE['nom'].' - '.$UE['libelle'].'
'; + + } + } } + } //////////////////////////////////////////////////////////////////////////////// echo '
'; @@ -168,6 +228,29 @@ if( permission('teacher') ){ // si l'utilisateur est un prof + + + + + + + + + + + + + + + + + + + + + + +