diff --git a/manager/database.php b/manager/database.php index d4b2531..e9e87b4 100755 --- a/manager/database.php +++ b/manager/database.php @@ -191,16 +191,22 @@ class DataBase{ return 'error'; } - /******************************************************/ - /*** retourne la liste des utilisateurs d'un groupe ***/ - /******************************************************/ - public function listeEtudiantsGroupe($formation, $groupe, $semestre, $annee){ + /******************************************************************/ + /*** retourne la liste des utilisateurs du groupe d'un étudiant ***/ + /******************************************************************/ + public function listeEtudiantsGroupe($etudiant, $formation, $semestre, $annee){ // on vérifie que le groupe et le semestre existent - if( !($groupeUID=groupRepo::UID($groupe)) ) return 'unknown_group'; else $groupeUID = (int) $groupeUID; if( !($semestreUID=semestreRepo::UID($formation, $semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID; + if( !($etudiantUID=userRepo::UID($etudiant, $semestreUID)) ) return 'unknown_user'; + if( !($groupeObj=groupRepo::forStudent($etudiantUID, $semestreUID)) ) return 'unknown_group'; + + $userlist = DataBase::delNumeric( groupRepo::membres($groupeObj['id'], $semestreUID) ); + $userlist['groupe'] = $groupeObj['nom']; + // foreach($userlist as $iter=>$user) + // $userlist[$iter]['groupe'] = $groupeObj['nom']; // on retourne la liste des utilisateurs et on supprime les doublons à indices numériques - return DataBase::delNumeric( groupRepo::membres($groupeUID, $semestreUID) ); + return $userlist; } @@ -277,25 +283,6 @@ class DataBase{ } - /***********************************************/ - /*** retourne le nom du groupe d'un étudiant ***/ - /***********************************************/ - public function getGroupeEtudiant($etudiant, $formation, $semestre, $annee){ - // on vérifie que le semestre et l'utilisateur existent - if( !($semestreUID=semestreRepo::UID($formation, $semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID; - if( !($etudiantUID=userRepo::UID($etudiant, $semestreUID)) ) return 'unknown_user'; - - - // on retourne le nom - if( $groupeObj = groupRepo::forStudent($etudiantUID, $semestreUID) ) - return $groupeObj['nom']; - else // si on a pas trouvé de groupe pour cet étudiant à ce semestre - return 'unknown_group'; - } - - - - /******************************************************/ /***** déplace un étudiant d'un groupe à un autre *****/ diff --git a/manager/groups.php b/manager/groups.php index 3ce130b..6719175 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -80,16 +80,15 @@ require_once __ROOT__.'/manager/database.php'; /*****************************************/ case 'userlist': if( permission('student') ){ - $areSetParam = isset($request->groupe) && isset($request->semestre) && isset($request->annee) && isset($request->formation); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->groupe) && is_numeric($request->semestre) && is_numeric($request->annee) && is_numeric($request->formation); // si c'est des strings - $nEmptyParam = $typeOkParam && strlen($request->groupe) > 0; // d'au moins 1 caractère - $groupeCheck = $nEmptyParam && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format - $formationCheck = $groupeCheck && preg_match('/^[1-4]{1}$/i', $request->formation); // formation (formation) bon format - $semestreCheck = $formationCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format - $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + $areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee) && isset($request->formation); // les arguments existent + $typeOkParam = $areSetParam && is_string($request->etudiant) && is_numeric($request->semestre) && is_numeric($request->annee) && is_numeric($request->formation); // si c'est des strings + $etudiantCheck = $typeOkParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format + $formationCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->formation); // formation (formation) bon format + $semestreCheck = $formationCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format + $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons - $userlist = DataBase::getInstance()->listeEtudiantsGroupe($request->formation, $request->groupe, $request->semestre, $request->annee); + $userlist = DataBase::getInstance()->listeEtudiantsGroupe($request->etudiant, $request->formation, $request->semestre, $request->annee); if( is_array($userlist) ){ // si on a récupéré la liste des utilisateurs $answer->userlist = $userlist; @@ -226,32 +225,6 @@ require_once __ROOT__.'/manager/database.php'; $answer->request = 'permission_error'; break; - - /**********************************************/ - /* retourne le nom du groupe d'un utilisateur */ - /**********************************************/ - case 'get': if( permission('student') ){ - - $areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent - $typeOkParam = $areSetParam && is_string($request->etudiant) && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings - $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0; // d'au moins 1 caractère - $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format - $semestreCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format - $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format - - - $groupe = DataBase::getInstance()->getGroupeEtudiant($request->etudiant, $_SESSION['formation'], $request->semestre, $request->annee); - - if( $groupe != 'error' ){ // si on a récupéré quelque chose - $answer->groupe = $groupe; - $answer->request = 'success'; - }else // si on a pas "success", alors c'est que $groupe est un message d'erreur - $answer->request = 'error'; - - }else - $answer->request = 'permission_error'; - break; - /************************************************/ /* déplace un étudiant de son groupe à un autre */ /************************************************/ diff --git a/page/groups.php b/page/groups.php index fb05879..085a839 100755 --- a/page/groups.php +++ b/page/groups.php @@ -132,62 +132,48 @@ if( permission('student') ){ // si connecté && utilisateur */ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un élève - $request = new stdClass(); $answer = new stdClass(); + $request = new stdClass(); $answer = new stdClass(); + $request->level_1 = 'userlist'; + $request->etudiant = $_SESSION['identifiant']; + $request->formation = $_SESSION['formation']; + $request->semestre = $_SESSION['semestre']; + $request->annee = $_SESSION['annee']; + groups_switch_level_1($request, $answer); - $request->level_1 = 'get'; - $request->etudiant = $_SESSION['identifiant']; - $request->semestre = $_SESSION['semestre']; - $request->annee = $_SESSION['annee']; - - groups_switch_level_1($request, $answer); + if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe + //////////////////////////////////////////////////////////////////////////////// + echo "
"; - if( $answer->request == 'success' ){ // si pas d'erreur - $monGroupe = $answer->groupe; + echo ""; + echo ''; + echo ''; + echo ''; + echo '
'; + echo 'Groupe '.$answer->userlist['groupe']; + echo '
'; - $request = new stdClass(); $answer = new stdClass(); - $request->level_1 = 'userlist'; - $request->formation = $_SESSION['formation']; - $request->groupe = $monGroupe; - $request->semestre = $_SESSION['semestre']; - $request->annee = $_SESSION['annee']; - groups_switch_level_1($request, $answer); + echo ""; - if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe - //////////////////////////////////////////////////////////////////////////////// - echo "
"; + // pour chaque utilisateur + foreach($answer->userlist as $user){ if( $user != $answer->userlist['groupe'] ){ + echo '
'; + echo "'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + }} - echo "
".$user['identifiant'].''.$user['prenom'].''.$user['nom'].''.$user['semestre'].'Groupe '.$answer->userlist['groupe'].'
"; - echo ''; - echo ''; - echo ''; - echo '
'; - echo 'Groupe '.$monGroupe; - echo '
'; + // echo ''; - echo ""; - - // pour chaque utilisateur - foreach($answer->userlist as $user){ - echo ''; - echo "'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - } - - // echo ''; - - echo '
".$user['identifiant'].''.$user['prenom'].''.$user['nom'].''.$user['semestre'].'Groupe '.$monGroupe.'
'; + echo ''; - echo '
'; - //////////////////////////////////////////////////////////////////////////////// - }else - echo "
Aucun groupe trouvé
"; - }else - echo "
Aucun groupe trouvé
"; + echo ''; + //////////////////////////////////////////////////////////////////////////////// + }else + echo "
Aucun groupe trouvé
"; echo ''; } ?>