Suppression des paramètres optionnels (évitent de tout charger + les données affinées) donc maintenant on charge tout, mais une fois
This commit is contained in:
parent
6efa758cab
commit
26fe68da79
|
@ -215,14 +215,7 @@ class DataBase{
|
|||
/******************************************************************/
|
||||
/*** retourne la liste des utilisateurs des groupes d'une année ***/
|
||||
/******************************************************************/
|
||||
public function listeEtudiantsTousGroupesAnnee($annee, $semestre_pair, $pSemestre=null, $pGroupe=null){ // pSemestre/pGroupe optionnels
|
||||
// définition des paramètres optionnels
|
||||
$semestreOpt = '%';
|
||||
if( $pSemestre != null ) $semestreOpt = $pSemestre; // semestre donné uniquement (si param non null)
|
||||
|
||||
$groupeOpt = '%';
|
||||
if( $pGroupe != null ) $groupeOpt = $pGroupe; // si le groupe est donné, on le définit
|
||||
|
||||
public function listeEtudiantsTousGroupesAnnee($annee, $semestre_pair){
|
||||
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
|
||||
$checkAnnee = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee");
|
||||
$checkAnnee->execute(array( ':annee' => $annee ));
|
||||
|
@ -230,7 +223,7 @@ class DataBase{
|
|||
|
||||
|
||||
// on récupère la liste des groupes
|
||||
$grouplist = DataBase::delNumeric( groupRepo::forYear($semestre_pair, $annee, $pSemestre, $pGroupe) );
|
||||
$grouplist = DataBase::delNumeric( groupRepo::forYear($semestre_pair, $annee) );
|
||||
|
||||
foreach($grouplist as $iter=>$val) // pour chaque groupe un récupère la liste des utilisateurs
|
||||
$grouplist[$iter]['userlist'] = groupRepo::membres($grouplist[$iter]['id'], $grouplist[$iter]['id_semestre']);
|
||||
|
@ -242,15 +235,7 @@ class DataBase{
|
|||
/******************************************************************/
|
||||
/*** retourne la liste des utilisateurs des groupes d'une année ***/
|
||||
/******************************************************************/
|
||||
public function listeEtudiantsTousGroupesEnseignant($annee, $semestre_pair, $enseignant, $pSemestre, $pGroupe){
|
||||
// définition des paramètres optionnels
|
||||
$semestreOpt = '%';
|
||||
if( $pSemestre != null ) $semestreOpt = $pSemestre; // semestre donné uniquement (si param non null)
|
||||
|
||||
$groupeOpt = '%';
|
||||
if( $pGroupe != null ) $groupeOpt = $pGroupe; // si le groupe est donné, on le définit
|
||||
|
||||
|
||||
public function listeEtudiantsTousGroupesEnseignant($annee, $semestre_pair, $enseignant){
|
||||
/*** on cherche un semestre avec cette année ***/
|
||||
$checkAnnee = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee");
|
||||
$checkAnnee->execute(array( ':annee' => $annee ));
|
||||
|
@ -261,7 +246,7 @@ class DataBase{
|
|||
|
||||
|
||||
// on récupère la liste des groupes
|
||||
$grouplist = DataBase::delNumeric( groupRepo::forTeacher($enseignantUID, $semestre_pair, $annee, $pSemestre, $pGroupe) );
|
||||
$grouplist = DataBase::delNumeric( groupRepo::forTeacher($enseignantUID, $semestre_pair, $annee) );
|
||||
|
||||
foreach($grouplist as $iter=>$val) // pour chaque groupe un récupère la liste des utilisateurs
|
||||
$grouplist[$iter]['userlist'] = groupRepo::membres($grouplist[$iter]['id'], $grouplist[$iter]['id_semestre']);
|
||||
|
|
|
@ -168,20 +168,9 @@ require_once __ROOT__.'/manager/database.php';
|
|||
$anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||
$enseignantCheck = $anneeCheck && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // enseignant (annee) bon format
|
||||
|
||||
// paramètres optionnels
|
||||
$optionalSemestre = isset($request->semestre) && is_string($request->semestre) && preg_match('/^S[0-9]{1}$/i', $request->semestre);
|
||||
$optionalGroupe = isset($request->groupe) && is_string($request->groupe) && strlen($request->groupe) > 1 && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe);
|
||||
|
||||
// définition (ou pas) des paramètres optionnels
|
||||
if( $optionalSemestre ) $semestre = $request->semestre;
|
||||
else $semestre = null;
|
||||
|
||||
if( $optionalGroupe ) $groupe = $request->groupe;
|
||||
else $groupe = null;
|
||||
|
||||
if( $enseignantCheck ){
|
||||
|
||||
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $_SESSION['semestre_pair'], $request->enseignant, $semestre, $groupe);
|
||||
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $_SESSION['semestre_pair'], $request->enseignant);
|
||||
|
||||
if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs
|
||||
$answer->grouplist = $grouplist;
|
||||
|
@ -205,24 +194,10 @@ require_once __ROOT__.'/manager/database.php';
|
|||
$typeOkParam = $areSetParam && is_numeric($request->annee); // si c'est des strings
|
||||
$anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||
|
||||
|
||||
// paramètres optionnels
|
||||
$optionalSemestre = isset($request->semestre) && is_string($request->semestre) && preg_match('/^S[0-9]{1}$/i', $request->semestre);
|
||||
$optionalGroupe = isset($request->groupe) && is_string($request->groupe) && strlen($request->groupe) > 1 && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe);
|
||||
|
||||
// définition (ou pas) des paramètres optionnels
|
||||
if( $optionalSemestre ) $semestre = $request->semestre;
|
||||
else $semestre = null;
|
||||
|
||||
if( $optionalGroupe ) $groupe = $request->groupe;
|
||||
else $groupe = null;
|
||||
|
||||
|
||||
|
||||
if( $anneeCheck ){
|
||||
|
||||
// $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair'], $semestre, $groupe);
|
||||
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null, $semestre, $groupe);
|
||||
// $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair']);
|
||||
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null);
|
||||
|
||||
if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs
|
||||
$answer->grouplist = $grouplist;
|
||||
|
|
|
@ -227,25 +227,17 @@ class groupRepo extends DBAccess{
|
|||
/* RETOURNE TOUS LES GROUPES QUI ONT UN ENSEIGNANT PARTICULIER POUR UNE ANNEE DONNEE
|
||||
*
|
||||
* @enseignant<String> l'UID de l'enseignant recherché
|
||||
* @semestre_pair<Boolean> VRAI si le semestre courant est pair
|
||||
* @semestre_pair<Boolean> VRAI si le semestre courant est pair (***OPTIONNEL***)
|
||||
* @annee<int> l'année recherchée
|
||||
*
|
||||
* @pSemestre<int> ***OPTIONNEL*** le nom du semestre
|
||||
* @pGroupe<String> ***OPTIONNEL*** le nom du groupe
|
||||
*
|
||||
*
|
||||
* @return groupes<Array> retourne la liste des groupes correspondant aux critères
|
||||
*
|
||||
*/
|
||||
public static function forTeacher($enseignant, $semestre_pair, $annee, $pSemestre=null, $pGroupe=null){
|
||||
// si le semestre est donné, on cherche uniquement celui-ci, sinon on les affiche tous
|
||||
$semestreOpt = '%';
|
||||
if( $pSemestre != null ){ $semestreOpt = $pSemestre; }
|
||||
|
||||
// si le groupe est donné, on cherche uniquement celui-ci, sinon on les affiche tous
|
||||
$groupeOpt = '%';
|
||||
if( $pGroupe != null ){ $groupeOpt = $pGroupe; }
|
||||
public static function forTeacher($enseignant, $semestre_pair, $annee){
|
||||
|
||||
$semestrePair0 = '0'; $semestrePair1 = '1';
|
||||
if( is_bool($semestre_pair) ){ $semestrePair0 = ($semestre_pair)?'0':'1'; $semestrePair1 = ($semestre_pair)?'0':'1'; }
|
||||
|
||||
$getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre, f.id_formation, f.code as formation, f.nom as nom_formation ".
|
||||
"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, formation as f ".
|
||||
|
@ -263,13 +255,11 @@ class groupRepo extends DBAccess{
|
|||
"AND app.id_semestre = s.id_semestre ".
|
||||
"AND app.id_groupe = g.id_groupe ".
|
||||
|
||||
"AND g.nom LIKE '".$groupeOpt."' ".
|
||||
"AND s.nom LIKE '".$semestreOpt."' ".
|
||||
"AND u.identifiant = :enseignant ".
|
||||
"AND s.rang % 2 = :semestre_pair ".
|
||||
"AND (s.rang % 2 = :semestre_pair0 OR s.rang % 2 = :semestre_pair1) ".
|
||||
"AND s.annee = :annee ".
|
||||
"ORDER BY s.rang, g.nom");
|
||||
$getGroupeList->execute(array( ':enseignant' => $enseignant, ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee ));
|
||||
$getGroupeList->execute(array( ':enseignant' => $enseignant, ':semestre_pair0' => $semestrePair0, ':semestre_pair1' => $semestrePair1, ':annee' => $annee ));
|
||||
|
||||
return DataBase::delNumeric( $getGroupeList->fetchAll() );
|
||||
}
|
||||
|
@ -307,27 +297,17 @@ class groupRepo extends DBAccess{
|
|||
|
||||
/* RETOURNE TOUS LES GROUPES DES SEMESTRES COURANT D'UNE ANNÉE
|
||||
*
|
||||
* @semestre_pair<Boolean> VRAI si le semestre courant est pair
|
||||
* @semestre_pair<Boolean> VRAI si le semestre courant est pair (***OPTIONNEL***)
|
||||
* @annee<int> L'année en cours
|
||||
*
|
||||
* @pSemestre<int> ***OPTIONNEL*** le nom du semestre
|
||||
* @pGroupe<String> ***OPTIONNEL*** le nom du groupe
|
||||
*
|
||||
*
|
||||
* @return groupes<Array> retourne la liste des groupes correspondant aux critères
|
||||
*
|
||||
*/
|
||||
public static function forYear($semestre_pair, $annee, $pSemestre=null, $pGroupe=null){
|
||||
// si le semestre est donné, on cherche uniquement celui-ci, sinon on les affiche tous
|
||||
$semestreOpt = '%';
|
||||
if( $pSemestre != null ){ $semestreOpt = $pSemestre; }
|
||||
|
||||
// si le groupe est donné, on cherche uniquement celui-ci, sinon on les affiche tous
|
||||
$groupeOpt = '%';
|
||||
if( $pGroupe != null ){ $groupeOpt = $pGroupe; }
|
||||
public static function forYear($semestre_pair, $annee){
|
||||
|
||||
$semestrePair0 = '0'; $semestrePair1 = '1';
|
||||
if( is_bool($semestre_pair) ){ $semestrePair0 = $semestre_pair; $semestrePair1 = $semestre_pair; }
|
||||
if( is_bool($semestre_pair) ){ $semestrePair0 = ($semestre_pair)?'0':'1'; $semestrePair1 = ($semestre_pair)?'0':'1'; }
|
||||
|
||||
$getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre, f.id_formation, f.code as formation, f.nom as nom_formation ".
|
||||
"FROM groupe as g, semestre as s, appartenance as app, formation as f ".
|
||||
|
@ -335,8 +315,6 @@ class groupRepo extends DBAccess{
|
|||
"AND g.id_groupe = app.id_groupe ".
|
||||
"AND s.id_semestre = app.id_semestre ".
|
||||
|
||||
"AND g.nom LIKE '".$groupeOpt."' ".
|
||||
"AND s.nom LIKE '".$semestreOpt."' ".
|
||||
"AND (s.rang % 2 = :semestre_pair0 OR s.rang % 2 = :semestre_pair1) ".
|
||||
"AND s.annee = :annee ".
|
||||
"ORDER BY g.nom");
|
||||
|
|
Loading…
Reference in New Issue