From 33b2d5c6549b88f0819e65dd9f26a382f4f41f49 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Tue, 10 Nov 2015 22:33:51 +0100 Subject: [PATCH] Modifications mineures --- manager/database.php | 23 ++++++++++++++--------- manager/groups.php | 2 +- manager/repo/group.php | 30 ++++++++++++++++++++++++++++++ manager/security.php | 7 +++++++ xdoc/linecount | 9 +++++---- 5 files changed, 57 insertions(+), 14 deletions(-) diff --git a/manager/database.php b/manager/database.php index a29fe1d..18f9a2e 100755 --- a/manager/database.php +++ b/manager/database.php @@ -215,7 +215,7 @@ class DataBase{ // on cherche tout les groupes du même semestre de la même année - $getGroupesUID = DataBase::getPDO()->prepare("SELECT DISTINCT g.nom, s.rang, s.nom as semestre ". + $getGroupesUID = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.nom as semestre ". "FROM groupe as g, semestre as s, appartenance as app ". "WHERE g.id_groupe = app.id_groupe ". "AND s.id_semestre = app.id_semestre ". @@ -230,12 +230,12 @@ class DataBase{ // on parcourt tous les groupes while( $groupeUID = $getGroupesUID->fetch() ){ - + $groupe = new stdClass(); $groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe $groupe->semestre = $groupeUID['semestre']; - $groupe->userlist = $this->listeEtudiantsGroupe($groupe->nom, $semestre, $annee); // on charge la liste des utilisateurs de ce groupe + $groupe->userlist = groupRepo::membres($groupeUID['id'], $semestreUID); // on charge la liste des utilisateurs de ce groupe array_push($grouplist, $groupe); // on l'ajoute au résultat } @@ -268,7 +268,7 @@ class DataBase{ return 'unknown_year'; // on cherche tout les groupes du même semestre de la même année - $getGroupesUID = DataBase::getPDO()->prepare("SELECT DISTINCT g.nom, s.rang, s.nom as semestre ". + $getGroupesUID = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre ". "FROM groupe as g, semestre as s, appartenance as app ". "WHERE g.id_groupe = app.id_groupe ". "AND s.id_semestre = app.id_semestre ". @@ -294,7 +294,7 @@ class DataBase{ $groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe $groupe->semestre = $groupeUID['semestre']; - $groupe->userlist = $this->listeEtudiantsGroupe($groupe->nom, $groupeUID['rang'], $annee); // on charge la liste des utilisateurs de ce groupe + $groupe->userlist = groupRepo::membres($groupeUID['id'], $groupeUID['id_semestre']); // on charge la liste des utilisateurs de ce groupe array_push($grouplist, $groupe); // on l'ajoute au résultat } @@ -306,7 +306,9 @@ class DataBase{ /******************************************************************/ /*** retourne la liste des utilisateurs des groupes d'une année ***/ /******************************************************************/ - public function listeEtudiantsTousGroupesEnseignant($annee, $enseignant, $pSemestre, $pGroupe){ + public function listeEtudiantsTousGroupesEnseignant($annee, $semestre_pair, $enseignant, $pSemestre, $pGroupe){ + $semestre_pair = ($semestre_pair) ? '0' : '1'; + // définition des paramètres optionnels $semestreDeb = 1; $semestreFin = 4; if( $pSemestre != null ){ $semestreDeb = $pSemestre; $semestreFin = $pSemestre; } // semestre donné uniquement (si param non null) @@ -331,7 +333,7 @@ class DataBase{ // on cherche tout les groupes du même semestre de la même année - $getGroupesUID = DataBase::getPDO()->prepare("SELECT DISTINCT s.nom as semestre, s.rang, g.nom as nom ". + $getGroupesUID = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, s.id_semestre, s.nom as semestre, s.rang, g.nom as nom ". "FROM module as m, utilisateur as u, utilisateur as eleve, groupe as g, enseignement as ens, mcc_ue, mcc_module as mcc_m, semestre as s, appartenance as app ". "WHERE mcc_ue.id_semestre = s.id_semestre ". "AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ". @@ -346,7 +348,8 @@ class DataBase{ "AND app.id_groupe = g.id_groupe ". "AND g.nom LIKE '".$groupeOpt."' ". - "AND s.rang BETWEEN :semestreDeb AND :semestreFin ". + "AND s.rang BETWEEN :semestreDeb AND :semestreFin ". + "AND s.rang % 2 = :semestre_pair ". "AND s.annee = :annee ". "AND u.identifiant = :enseignantUID ". "ORDER BY s.rang, g.nom"); @@ -355,8 +358,10 @@ class DataBase{ ':semestreDeb' => $semestreDeb, ':semestreFin' => $semestreFin, ':annee' => $annee, + ':semestre_pair' => $semestre_pair, ':enseignantUID' => $enseignantUID )); + $grouplist = array(); // contiendra tout les groupes // on parcourt tous les groupes @@ -366,7 +371,7 @@ class DataBase{ $groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe $groupe->semestre = $groupeUID['semestre']; - $groupe->userlist = $this->listeEtudiantsGroupe($groupe->nom, $groupeUID['rang'], $annee); // on charge la liste des utilisateurs de ce groupe + $groupe->userlist = groupRepo::membres($groupeUID['id'], $groupeUID['id_semestre']); // on charge la liste des utilisateurs de ce groupe array_push($grouplist, $groupe); // on l'ajoute au résultat } diff --git a/manager/groups.php b/manager/groups.php index 12fa860..66ab9e2 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -181,7 +181,7 @@ require_once __ROOT__.'/manager/database.php'; if( $enseignantCheck ){ - $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $request->enseignant, $semestre, $groupe); + $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $_SESSION['semestre_pair'], $request->enseignant, $semestre, $groupe); if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs $answer->grouplist = $grouplist; diff --git a/manager/repo/group.php b/manager/repo/group.php index 6471006..0c97222 100755 --- a/manager/repo/group.php +++ b/manager/repo/group.php @@ -154,7 +154,37 @@ class groupRepo extends DBAccess{ + /* RETOURNE LA LISTE DES UTILISATEURS MEMBRES D'UN GROUPE + * + * @groupeUID l'UID du groupe en question + * @semestreUID l'UID du semestre en question + * + * @return membres la liste des utilisateurs du groupe + * + */ + public static function membres($groupeUID, $semestreUID){ + // si le groupe existe => on récupère ses utilisateurs + $getMembres = DataBase::getPDO()->prepare("SELECT u.identifiant, u.prenom, u.nom, u.mail, u.droits, s.nom as semestre ". + "FROM utilisateur as u, groupe as g, semestre as s, appartenance as app ". + "WHERE u.identifiant = app.id_etudiant ". + "AND g.id_groupe = app.id_groupe ". + "AND app.id_semestre = app.id_semestre ". // à virer (peut-être) + + "AND g.id_groupe = :groupeUID ". + "AND s.id_semestre = :semestreUID ". + "ORDER BY u.prenom, u.nom"); + $getMembres->execute(array( + ':groupeUID' => $groupeUID, + ':semestreUID' => $semestreUID + )); + // on retourne la liste des membres en supprimant les doublons à indices numériques + return DataBase::delNumeric( $getMembres->fetchAll() ); + } + + + + } \ No newline at end of file diff --git a/manager/security.php b/manager/security.php index 6fac1c3..fa33f3a 100755 --- a/manager/security.php +++ b/manager/security.php @@ -56,6 +56,13 @@ + /*********** AURELIEN TROU DU CUL TU TE DEMERDE ***********/ + function checkParams($arrayVar, $arrayType, $arrayRegex){ + + } + + + /* [1] SESSIONS & REDIRECTION ============================================================*/ diff --git a/xdoc/linecount b/xdoc/linecount index d91299b..7fce13e 100755 --- a/xdoc/linecount +++ b/xdoc/linecount @@ -1,10 +1,11 @@ | css | 954 | | js | 822 | -| manager | 2014 | -| page | 863 | +| manager | 2011 | +| repo | 407 | +| page | 919 | | _JS | 98 | | API.js | 77 | | API.php | 104 | -| index.php | 142 | +| index.php | 141 | +-----------+-------+ -| TOTAL | 5074 | \ No newline at end of file +| TOTAL | 5533 | \ No newline at end of file