Simplification d'affichage de etudiant@mon_groupe en utilisant une requête unique
This commit is contained in:
parent
7228ae443f
commit
6e5e07b1e7
|
@ -191,16 +191,22 @@ class DataBase{
|
||||||
return 'error';
|
return 'error';
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************/
|
/******************************************************************/
|
||||||
/*** retourne la liste des utilisateurs d'un groupe ***/
|
/*** retourne la liste des utilisateurs du groupe d'un étudiant ***/
|
||||||
/******************************************************/
|
/******************************************************************/
|
||||||
public function listeEtudiantsGroupe($formation, $groupe, $semestre, $annee){
|
public function listeEtudiantsGroupe($etudiant, $formation, $semestre, $annee){
|
||||||
// on vérifie que le groupe et le semestre existent
|
// 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( !($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
|
// 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 *****/
|
/***** déplace un étudiant d'un groupe à un autre *****/
|
||||||
|
|
|
@ -80,16 +80,15 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
/*****************************************/
|
/*****************************************/
|
||||||
case 'userlist': if( permission('student') ){
|
case 'userlist': if( permission('student') ){
|
||||||
|
|
||||||
$areSetParam = isset($request->groupe) && isset($request->semestre) && isset($request->annee) && isset($request->formation); // les arguments existent
|
$areSetParam = isset($request->etudiant) && 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
|
$typeOkParam = $areSetParam && is_string($request->etudiant) && 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
|
$etudiantCheck = $typeOkParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format
|
||||||
$groupeCheck = $nEmptyParam && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format
|
$formationCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->formation); // formation (formation) 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
|
$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
|
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||||
|
|
||||||
if( $anneeCheck ){ // si tout les paramètres sont bons
|
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
|
if( is_array($userlist) ){ // si on a récupéré la liste des utilisateurs
|
||||||
$answer->userlist = $userlist;
|
$answer->userlist = $userlist;
|
||||||
|
@ -226,32 +225,6 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
$answer->request = 'permission_error';
|
$answer->request = 'permission_error';
|
||||||
break;
|
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 */
|
/* déplace un étudiant de son groupe à un autre */
|
||||||
/************************************************/
|
/************************************************/
|
||||||
|
|
|
@ -132,22 +132,10 @@ if( permission('student') ){ // si connecté && utilisateur
|
||||||
*/
|
*/
|
||||||
if( permission('student') ){ // si l'utilisateur est connecté et que c'est un élève
|
if( permission('student') ){ // si l'utilisateur est connecté et que c'est un élève
|
||||||
|
|
||||||
$request = new stdClass(); $answer = new stdClass();
|
|
||||||
|
|
||||||
$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 pas d'erreur
|
|
||||||
$monGroupe = $answer->groupe;
|
|
||||||
|
|
||||||
$request = new stdClass(); $answer = new stdClass();
|
$request = new stdClass(); $answer = new stdClass();
|
||||||
$request->level_1 = 'userlist';
|
$request->level_1 = 'userlist';
|
||||||
|
$request->etudiant = $_SESSION['identifiant'];
|
||||||
$request->formation = $_SESSION['formation'];
|
$request->formation = $_SESSION['formation'];
|
||||||
$request->groupe = $monGroupe;
|
|
||||||
$request->semestre = $_SESSION['semestre'];
|
$request->semestre = $_SESSION['semestre'];
|
||||||
$request->annee = $_SESSION['annee'];
|
$request->annee = $_SESSION['annee'];
|
||||||
groups_switch_level_1($request, $answer);
|
groups_switch_level_1($request, $answer);
|
||||||
|
@ -159,7 +147,7 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un
|
||||||
echo "<table class='basic col1'><thead>";
|
echo "<table class='basic col1'><thead>";
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
echo '<th colspan=5>';
|
echo '<th colspan=5>';
|
||||||
echo 'Groupe '.$monGroupe;
|
echo 'Groupe '.$answer->userlist['groupe'];
|
||||||
echo '</th>';
|
echo '</th>';
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
echo '</thead></table>';
|
echo '</thead></table>';
|
||||||
|
@ -167,15 +155,15 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un
|
||||||
echo "<table class='basic col5'><tbody>";
|
echo "<table class='basic col5'><tbody>";
|
||||||
|
|
||||||
// pour chaque utilisateur
|
// pour chaque utilisateur
|
||||||
foreach($answer->userlist as $user){
|
foreach($answer->userlist as $user){ if( $user != $answer->userlist['groupe'] ){
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
echo "<td><span class=link>".$user['identifiant'].'</span></td>';
|
echo "<td><span class=link>".$user['identifiant'].'</span></td>';
|
||||||
echo '<td>'.$user['prenom'].'</td>';
|
echo '<td>'.$user['prenom'].'</td>';
|
||||||
echo '<td>'.$user['nom'].'</td>';
|
echo '<td>'.$user['nom'].'</td>';
|
||||||
echo '<td>'.$user['semestre'].'</td>';
|
echo '<td>'.$user['semestre'].'</td>';
|
||||||
echo '<td>Groupe <span class=stressed>'.$monGroupe.'</span></td>';
|
echo '<td>Groupe <span class=stressed>'.$answer->userlist['groupe'].'</span></td>';
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
}
|
}}
|
||||||
|
|
||||||
// echo '<tr><td colspan=5 class=more></td></tr>';
|
// echo '<tr><td colspan=5 class=more></td></tr>';
|
||||||
|
|
||||||
|
@ -186,8 +174,6 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
}else
|
}else
|
||||||
echo "<section name='studentsgroup' data-title='Mon groupe' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
|
echo "<section name='studentsgroup' data-title='Mon groupe' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
|
||||||
}else
|
|
||||||
echo "<section name='studentsgroup' data-title='Mon groupe' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
|
|
||||||
|
|
||||||
echo '</section>';
|
echo '</section>';
|
||||||
} ?>
|
} ?>
|
||||||
|
|
Loading…
Reference in New Issue