Création des repos module.php/ue.php + augmentation de userRepo::UID($identifiant, $semestre, $annee)
This commit is contained in:
parent
7a26d3a49c
commit
4b78463224
|
@ -4,8 +4,8 @@
|
|||
require_once __ROOT__.'/manager/repo/user.php'; // gestion des utilisateurs (UID, infos, création, modification)
|
||||
require_once __ROOT__.'/manager/repo/group.php'; // gestion des groupes & appartenances (UID, ajouter membres, visu membres, création, modification)
|
||||
require_once __ROOT__.'/manager/repo/semestre.php';
|
||||
// require_once __ROOT__.'/manager/repo/module.php';
|
||||
// require_once __ROOT__.'/manager/repo/ue.php';
|
||||
require_once __ROOT__.'/manager/repo/module.php';
|
||||
require_once __ROOT__.'/manager/repo/ue.php';
|
||||
// require_once __ROOT__.'/manager/repo/note.php';
|
||||
// debug();
|
||||
|
||||
|
@ -109,7 +109,7 @@ class DataBase{
|
|||
/*** on récupère les informations utiles à l'utilisateur lors de la connection ***/
|
||||
/*********************************************************************************/
|
||||
public function utilisateurInfo($identifiant){
|
||||
// si l'utilisateur n'existe pas on retourne 'unknown_user'
|
||||
// on vérifie que l'utilisateur existe
|
||||
if( !($utilisateurUID=userRepo::UID($identifiant)) ) return 'unknown_user';
|
||||
|
||||
return userRepo::info($utilisateurUID);
|
||||
|
@ -156,13 +156,9 @@ class DataBase{
|
|||
/*** ajout d'un utilisateur à un groupe dans la bdd ***/
|
||||
/******************************************************/
|
||||
public function ajouterEtudiantGroupe($etudiant, $groupe, $semestre, $annee){
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
// on vérifie que l'utilisateur, le groupe, le semestre existent
|
||||
if( !($etudiantUID=userRepo::UID($etudiant)) ) return 'unknown_user';
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_group' sinon on définit la variable
|
||||
if( !($groupeUID=groupRepo::UID($groupe)) ) return 'unknown_group'; else $groupeUID = (int) $groupeUID;
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
|
@ -176,11 +172,8 @@ class DataBase{
|
|||
/*** retourne la liste des utilisateurs d'un groupe ***/
|
||||
/******************************************************/
|
||||
public function listeEtudiantsGroupe($groupe, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_group' sinon on définit la variable
|
||||
// on vérifie que le groupe et le semestre existent
|
||||
if( !($groupeUID=groupRepo::UID($groupe)) ) return 'unknown_group'; else $groupeUID = (int) $groupeUID;
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
|
@ -210,7 +203,7 @@ class DataBase{
|
|||
/*** retourne la liste des utilisateurs des groupes d'un semestre ***/
|
||||
/********************************************************************/
|
||||
public function listeEtudiantsTousGroupesSemestre($semestre, $annee){
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
// on vérifie que le semestre existe
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
|
@ -257,6 +250,7 @@ class DataBase{
|
|||
$groupeOpt = '%';
|
||||
if( $pGroupe != null ){ $groupeOpt = $pGroupe; } // si le groupe est donné, on le définit
|
||||
|
||||
|
||||
/*** 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(
|
||||
|
@ -385,11 +379,8 @@ class DataBase{
|
|||
/*** retourne le nom du groupe d'un étudiant ***/
|
||||
/***********************************************/
|
||||
public function getGroupeEtudiant($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
// on vérifie que le semestre et l'utilisateur existent
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($etudiantUID=userRepo::UID($etudiant)) ) return 'unknown_user';
|
||||
|
||||
|
||||
|
@ -541,11 +532,8 @@ class DataBase{
|
|||
/*** retourne les modules d'un étudiant par UEs ***/
|
||||
/**************************************************/
|
||||
public function getModulesByUEByEtudiant($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
// on vérifie que le semestre et l'utilisateur existent
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($etudiantUID=userRepo::UID($etudiant)) ) return 'unknown_user';
|
||||
|
||||
|
||||
|
@ -608,58 +596,12 @@ class DataBase{
|
|||
/*** retourne les modules d'un étudiant ***/
|
||||
/******************************************/
|
||||
public function getModulesEtudiant($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
// on vérifie que le semestre et l'étudiant existent
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($etudiantUID=userRepo::UID($etudiant)) ) return 'unknown_user';
|
||||
|
||||
|
||||
|
||||
|
||||
/*** on cherche le groupe de cet utilisateur ***/
|
||||
$getGroupeUID = DataBase::getPDO()->prepare("SELECT g.id_groupe as id ".
|
||||
"FROM utilisateur as u, groupe as g, appartenance as app, semestre as s ".
|
||||
"WHERE app.id_etudiant = u.identifiant ".
|
||||
"AND app.id_groupe = g.id_groupe ".
|
||||
"AND app.id_semestre = :semestreUID ".
|
||||
|
||||
"AND u.identifiant = :etudiantUID");
|
||||
$getGroupeUID->execute(array(
|
||||
':etudiantUID' => $etudiantUID,
|
||||
':semestreUID' => $semestreUID
|
||||
));
|
||||
|
||||
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
||||
if( $groupeUID = $getGroupeUID->fetch()['id'] )
|
||||
$groupeUID = $groupeUID;
|
||||
else
|
||||
return 'unknown_group';
|
||||
|
||||
// si on a l'UID utilisateur & l'UID groupe => 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 module as m, groupe as g, semestre as s, ue, appartenance as app, mcc_ue, mcc_module as mcc_m ".
|
||||
"WHERE app.id_semestre = s.id_semestre ".
|
||||
"AND app.id_groupe = g.id_groupe ".
|
||||
"AND app.id_semestre = mcc_ue.id_semestre ".
|
||||
|
||||
"AND mcc_ue.id_ue = ue.id_ue ".
|
||||
"AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ".
|
||||
"AND mcc_m.id_module = m.id_module ".
|
||||
|
||||
"AND g.id_groupe = :groupeUID ".
|
||||
"AND s.rang = :semestre ".
|
||||
"AND s.annee = :annee ".
|
||||
"ORDER BY m.nom, m.libelle ASC");
|
||||
$getModuleList->execute(array(
|
||||
':groupeUID' => $groupeUID,
|
||||
':semestre' => $semestre,
|
||||
':annee' => $annee
|
||||
));
|
||||
|
||||
// on retourne les modules en supprimant les valeurs à indices numériques
|
||||
return DataBase::delNumeric( $getModuleList->fetchAll() );
|
||||
return moduleRepo::forStudent($etudiantUID, $semestreUID);
|
||||
}
|
||||
|
||||
|
||||
|
@ -667,58 +609,13 @@ class DataBase{
|
|||
/*** retourne les UEs d'un étudiant ***/
|
||||
/**************************************/
|
||||
public function getUEsEtudiant($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
// on vérifie que le semestre et l'étudiant existent
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($etudiantUID=userRepo::UID($etudiant)) ) return 'unknown_user';
|
||||
|
||||
|
||||
|
||||
|
||||
/*** on cherche le groupe de cet utilisateur ***/
|
||||
$getGroupeUID = DataBase::getPDO()->prepare("SELECT g.id_groupe as id ".
|
||||
"FROM utilisateur as u, groupe as g, appartenance as app, semestre as s ".
|
||||
"WHERE app.id_etudiant = u.identifiant ".
|
||||
"AND app.id_groupe = g.id_groupe ".
|
||||
"AND app.id_semestre = s.id_semestre ".
|
||||
|
||||
"AND u.identifiant = :etudiantUID ".
|
||||
"AND app.id_semestre = :semestreUID");
|
||||
$getGroupeUID->execute(array(
|
||||
':etudiantUID' => $etudiantUID,
|
||||
':semestreUID' => $semestreUID,
|
||||
));
|
||||
|
||||
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
||||
if( $groupeUID = $getGroupeUID->fetch()['id'] )
|
||||
$groupeUID = $groupeUID;
|
||||
else
|
||||
return 'unknown_group';
|
||||
|
||||
// si on a l'UID utilisateur & l'UID groupe => on récupère les modules
|
||||
$getUEList = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.annee as annee, ue.nom as nom, ue.libelle as libelle ".
|
||||
"FROM module as m, groupe as g, semestre as s, ue, appartenance as app, mcc_ue, mcc_module as mcc_m ".
|
||||
"WHERE app.id_semestre = s.id_semestre ".
|
||||
"AND app.id_groupe = g.id_groupe ".
|
||||
"AND app.id_semestre = mcc_ue.id_semestre ".
|
||||
|
||||
"AND mcc_ue.id_ue = ue.id_ue ".
|
||||
"AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ".
|
||||
|
||||
"AND mcc_m.id_module = m.id_module ".
|
||||
|
||||
"AND g.id_groupe = :groupeUID ".
|
||||
"AND app.id_semestre = :semestreUID ".
|
||||
"ORDER BY m.nom, m.libelle ASC");
|
||||
$getUEList->execute(array(
|
||||
':groupeUID' => $groupeUID,
|
||||
':semestreUID' => $semestreUID
|
||||
));
|
||||
|
||||
// on retourne la liste d'UEs en supprimant les doublons à clés numériques
|
||||
return DataBase::delNumeric( $getUEList->fetchAll() );
|
||||
return ueRepo::forStudent($etudiantUID, $semestreUID);
|
||||
}
|
||||
|
||||
|
||||
|
@ -736,37 +633,8 @@ class DataBase{
|
|||
/*** retourne les modules d'un étudiant par UEs ***/
|
||||
/**************************************************/
|
||||
public function getModulesByUEByEnseignant($enseignant, $annee){
|
||||
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
|
||||
$getSemestreUID = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee");
|
||||
$getSemestreUID->execute(array(
|
||||
':annee' => $annee
|
||||
));
|
||||
|
||||
// si on trouve, on le définit, sinon on retourne "unknown_group"
|
||||
if( ! $getSemestreUID->fetch() )
|
||||
return 'unknown_year';
|
||||
|
||||
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
$getEnseignantUID = DataBase::getPDO()->prepare("SELECT DISTINCT u.identifiant as id ".
|
||||
"FROM utilisateur as u, enseignement as ens, semestre as s, mcc_module as mcc_m, mcc_ue ".
|
||||
"WHERE u.identifiant = ens.id_enseignant ".
|
||||
"AND ens.id_mcc_module = mcc_m.id_mcc_module ".
|
||||
"AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ".
|
||||
"AND mcc_ue.id_semestre = s.id_semestre ".
|
||||
"AND s.annee = :annee ".
|
||||
"AND u.identifiant = :enseignant");
|
||||
$getEnseignantUID->execute(array(
|
||||
':annee' => $annee,
|
||||
':enseignant' => $enseignant
|
||||
));
|
||||
|
||||
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
||||
if( $enseignantUID = $getEnseignantUID->fetch()['id'] )
|
||||
$enseignantUID = $enseignantUID;
|
||||
else
|
||||
return 'unknown_teacher';
|
||||
|
||||
// on vérifie que l'enseignant enseigne bien cette année
|
||||
if( !($enseignantUID=userRepo::UID($enseignant, null, $annee)) ) return 'unknown_teacher';
|
||||
|
||||
|
||||
$UEList = $this->getUEsEnseignant($enseignant, $annee); // on récupère la liste des UEs
|
||||
|
@ -803,37 +671,8 @@ class DataBase{
|
|||
/*** retourne les UEs d'un enseignant ***/
|
||||
/****************************************/
|
||||
public function getUEsEnseignant($enseignant, $annee){
|
||||
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
|
||||
$getSemestreUID = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee");
|
||||
$getSemestreUID->execute(array(
|
||||
':annee' => $annee
|
||||
));
|
||||
|
||||
// si on trouve, on le définit, sinon on retourne "unknown_group"
|
||||
if( ! $getSemestreUID->fetch() )
|
||||
return 'unknown_year';
|
||||
|
||||
|
||||
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
$getEnseignantUID = DataBase::getPDO()->prepare("SELECT DISTINCT u.identifiant as id ".
|
||||
"FROM utilisateur as u, enseignement as ens, semestre as s, mcc_module as mcc_m, mcc_ue ".
|
||||
"WHERE u.identifiant = ens.id_enseignant ".
|
||||
"AND ens.id_mcc_module = mcc_m.id_mcc_module ".
|
||||
"AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ".
|
||||
"AND mcc_ue.id_semestre = s.id_semestre ".
|
||||
"AND s.annee = :annee ".
|
||||
"AND u.identifiant = :enseignant");
|
||||
$getEnseignantUID->execute(array(
|
||||
':annee' => $annee,
|
||||
':enseignant' => $enseignant
|
||||
));
|
||||
|
||||
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
||||
if( $enseignantUID = $getEnseignantUID->fetch()['id'] )
|
||||
$enseignantUID = $enseignantUID;
|
||||
else
|
||||
return 'unknown_teacher';
|
||||
// on vérifie que l'enseignant enseigne bien cette année
|
||||
if( !($enseignantUID=userRepo::UID($enseignant, null, $annee)) ) return 'unknown_teacher';
|
||||
|
||||
|
||||
|
||||
|
@ -885,26 +724,9 @@ class DataBase{
|
|||
/*** retourne les notes par modules ***/
|
||||
/**************************************/
|
||||
public function getNotesByModules($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
// on vérifie que le semestre exist et que l'étudiant est inscrit à ce semestre
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
$getEtudiantUID = DataBase::getPDO()->prepare("SELECT u.identifiant as id FROM utilisateur as u, appartenance as app ".
|
||||
"WHERE u.identifiant = app.id_etudiant ".
|
||||
"AND u.identifiant = :etudiant ".
|
||||
"AND app.id_semestre = :semestreUID");
|
||||
$getEtudiantUID->execute(array(
|
||||
':etudiant' => $etudiant,
|
||||
':semestreUID' => $semestreUID
|
||||
));
|
||||
|
||||
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
||||
if( $etudiantUID = $getEtudiantUID->fetch()['id'] )
|
||||
$etudiantUID = $etudiantUID;
|
||||
else
|
||||
return 'unknown_user';
|
||||
if( !($etudiantUID=userRepo::UID($etudiant, $semestreUID)) ) return 'unknown_user';
|
||||
|
||||
|
||||
$notelist = array(); // tableau qui contiendra tout les modules
|
||||
|
@ -932,27 +754,9 @@ class DataBase{
|
|||
/*** retourne les notes par UE ***/
|
||||
/*********************************/
|
||||
public function getNotesByUEs($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
$getEtudiantUID = DataBase::getPDO()->prepare("SELECT u.identifiant as id FROM utilisateur as u, appartenance as app ".
|
||||
"WHERE u.identifiant = app.id_etudiant ".
|
||||
"AND u.identifiant = :etudiant ".
|
||||
"AND app.id_semestre = :semestreUID");
|
||||
$getEtudiantUID->execute(array(
|
||||
':etudiant' => $etudiant,
|
||||
':semestreUID' => $semestreUID
|
||||
));
|
||||
|
||||
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
||||
if( $etudiantUID = $getEtudiantUID->fetch()['id'] )
|
||||
$etudiantUID = $etudiantUID;
|
||||
else
|
||||
return 'unknown_user';
|
||||
// on vérifie que le semestre exist et que l'étudiant est inscrit à ce semestre
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
if( !($etudiantUID=userRepo::UID($etudiant, $semestreUID)) ) return 'unknown_user';
|
||||
|
||||
|
||||
$notelist = array(); // tableau qui contiendra tout les modules
|
||||
|
@ -982,26 +786,9 @@ class DataBase{
|
|||
/*** retourne les notes d'un module ***/
|
||||
/**************************************/
|
||||
public function getModuleNotes($etudiant, $module, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
// on vérifie que le semestre exist et que l'étudiant est inscrit à ce semestre
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
$getEtudiantUID = DataBase::getPDO()->prepare("SELECT identifiant as id FROM utilisateur as u, appartenance as app ".
|
||||
"WHERE u.identifiant = app.id_etudiant ".
|
||||
"AND u.identifiant = :etudiant ".
|
||||
"AND app.id_semestre = :semestreUID");
|
||||
$getEtudiantUID->execute(array(
|
||||
':etudiant' => $etudiant,
|
||||
':semestreUID' => $semestreUID
|
||||
));
|
||||
|
||||
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
||||
if( $etudiantUID = $getEtudiantUID->fetch()['id'] )
|
||||
$etudiantUID = $etudiantUID;
|
||||
else
|
||||
return 'unknown_user';
|
||||
if( !($etudiantUID=userRepo::UID($etudiant, $semestreUID)) ) return 'unknown_user';
|
||||
|
||||
|
||||
|
||||
|
@ -1067,26 +854,9 @@ class DataBase{
|
|||
/*** retourne les notes d'un UE ***/
|
||||
/**********************************/
|
||||
public function getUENotes($etudiant, $UE, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
// on vérifie que le semestre exist et que l'étudiant est inscrit à ce semestre
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
$getEtudiantUID = DataBase::getPDO()->prepare("SELECT identifiant as id FROM utilisateur as u, appartenance as app ".
|
||||
"WHERE u.identifiant = app.id_etudiant ".
|
||||
"AND u.identifiant = :etudiant ".
|
||||
"AND app.id_semestre = :semestreUID");
|
||||
$getEtudiantUID->execute(array(
|
||||
':etudiant' => $etudiant,
|
||||
':semestreUID' => $semestreUID
|
||||
));
|
||||
|
||||
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
||||
if( $etudiantUID = $getEtudiantUID->fetch()['id'] )
|
||||
$etudiantUID = $etudiantUID;
|
||||
else
|
||||
return 'unknown_user';
|
||||
if( !($etudiantUID=userRepo::UID($etudiant, $semestreUID)) ) return 'unknown_user';
|
||||
|
||||
|
||||
/*** on cherche un module avec ce nom, en accord avec le semestre et l'étudiant ***/
|
||||
|
|
|
@ -0,0 +1,122 @@
|
|||
<?php require_once __ROOT__.'/manager/security.php';
|
||||
|
||||
/**************************************************************************/
|
||||
/* __ __ ___ ____ _ _ _ _____ ____ _____ ____ ___ */
|
||||
/* | \/ |/ _ \| _ \| | | | | | ____| | _ \| ____| _ \ / _ \ */
|
||||
/* | |\/| | | | | | | | | | | | | _| | |_) | _| | |_) | | | | */
|
||||
/* | | | | |_| | |_| | |_| | |___| |___ | _ <| |___| __/| |_| | */
|
||||
/* |_| |_|\___/|____/ \___/|_____|_____| |_| \_\_____|_| \___/ */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
class moduleRepo extends DBAccess{
|
||||
/* VERIFIE L'EXISTENCE D'UN MODULE DANS LA BDD
|
||||
*
|
||||
* @nom<String> le nom du module recherché
|
||||
*
|
||||
* @return UID<int> si le module est dans la BDD, retourne son UID
|
||||
* @return FALSE<Boolean> FAUX si le module n'est pas présent dans la BDD
|
||||
*
|
||||
*/
|
||||
public static function UID($nom){
|
||||
$getModuleUID = DataBase::getPDO()->prepare("SELECT id_module as id FROM module WHERE nom = :nom");
|
||||
$getModuleUID->execute(array( ':nom' => $nom ));
|
||||
|
||||
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID du module
|
||||
return $getModuleUID->fetch()['id'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE LES INFORMATIONS D'UN MODULE D'UID DONNÉ
|
||||
*
|
||||
* @moduleUID<int> l'UID du module duquel on veut les infos
|
||||
*
|
||||
* @return module<Array> tableau associatif contenant tout les champs de la BDD pour ce module
|
||||
*
|
||||
*/
|
||||
public static function info($moduleUID){
|
||||
$getModuleInfo = DataBase::getPDO()->prepare("SELECT id_module, nom, libelle FROM module WHERE id_module = :moduleUID");
|
||||
$getModuleInfo->execute(array( ':moduleUID' => $moduleUID ));
|
||||
|
||||
// on retourne le résultat en supprimant les doublons à indices numériques
|
||||
return $getModuleInfo->fetch();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE LA LISTE DES MODULES QU'A UN ETUDIANT POUR UN SEMESTRE
|
||||
*
|
||||
* @etudiant<String> Identifiant de l'étudiant
|
||||
* @semestre<int> l'UID du semestre
|
||||
*
|
||||
* @return modules<Array> retourne un tableau contenant les modules de l'utilisateur pour ce semestre
|
||||
*
|
||||
*/
|
||||
public static function forStudent($etudiant, $semestre){
|
||||
// on récupère les modules
|
||||
$getModulesForStudent = DataBase::getPDO()->prepare("SELECT m.id_module as id, m.nom, m.libelle ".
|
||||
"FROM module as m, appartenance as app, semestre as s, mcc_ue, mcc_module as mcc_m ".
|
||||
"WHERE app.id_semestre = s.id_semestre ".
|
||||
"AND mcc_ue.id_semestre = s.id_semestre ".
|
||||
"AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ".
|
||||
"AND mcc_m.id_module = m.id_module ".
|
||||
|
||||
"AND app.id_etudiant = :etudiant ".
|
||||
"AND s.id_semestre = :semestre ".
|
||||
"ORDER BY m.nom, m.libelle");
|
||||
$getModulesForStudent->execute(array( ':etudiant' => $etudiant, ':semestre' => $semestre ));
|
||||
|
||||
return DataBase::delNumeric( $getModulesForStudent->fetchAll() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* CREE UN NOUVEAU MODULE DANS LA BASE DE DONNES
|
||||
*
|
||||
* @nom<String> le nom du nouveau module
|
||||
* @libelle<String> le libellé du nouveau module
|
||||
*
|
||||
* @return UID<String> l'UID du nouveau module s'il a bien été créé
|
||||
* @return created<Boolean> VRAI si le module n'existait pas déjà* et qu'il a bien été créé
|
||||
* (*) Si aucun autre n'avait le même @nom
|
||||
*/
|
||||
public static function creer($nom, $libelle){
|
||||
/* [1] On normalise les données
|
||||
=================================================================================================*/
|
||||
$nom = strtoupper($nom); // nom en majuscules
|
||||
|
||||
/* [2] On vérifie que le module n'est pas déjà créé
|
||||
=================================================================================================*/
|
||||
if( $this->UID($nom) ) // si on a un résultat, c'est qu'un module a déjà cee nom
|
||||
return false;
|
||||
|
||||
/* [3] On créé le nouvel utilisateur
|
||||
=================================================================================================*/
|
||||
$creationModule = DataBase::getPDO()->prepare("INSERT INTO module(id_module, nom, libelle) ".
|
||||
"VALUES(DEFAULT, :nom, :libelle)");
|
||||
$creationModule->execute(array(
|
||||
':nom' => $nom,
|
||||
':libelle' => $libelle
|
||||
));
|
||||
|
||||
|
||||
/* [4] On vérifie que l'utilisateur a bien été créé
|
||||
=================================================================================================*/
|
||||
return $this->UID($nom);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -38,6 +38,16 @@ class semestreRepo extends DBAccess{
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE LES INFORMATIONS D'UN SEMESTRE D'UID DONNÉ
|
||||
*
|
||||
* @semestreUID<int> l'UID du semestre duquel on veut les infos
|
||||
|
|
|
@ -0,0 +1,121 @@
|
|||
<?php require_once __ROOT__.'/manager/security.php';
|
||||
|
||||
/**************************************************/
|
||||
/* _ _ _____ ____ _____ ____ ___ */
|
||||
/* | | | | ____| | _ \| ____| _ \ / _ \ */
|
||||
/* | | | | _| | |_) | _| | |_) | | | | */
|
||||
/* | |_| | |___ | _ <| |___| __/| |_| | */
|
||||
/* \___/|_____| |_| \_\_____|_| \___/ */
|
||||
/* */
|
||||
/**************************************************/
|
||||
|
||||
class ueRepo extends DBAccess{
|
||||
/* VERIFIE L'EXISTENCE D'UN UE DANS LA BDD
|
||||
*
|
||||
* @nom<String> le nom de l'UE recherchée
|
||||
*
|
||||
* @return UID<int> si l'UE est dans la BDD, retourne son UID
|
||||
* @return FALSE<Boolean> FAUX si l'UE' n'est pas présent dans la BDD
|
||||
*
|
||||
*/
|
||||
public static function UID($nom){
|
||||
$getUEUID = DataBase::getPDO()->prepare("SELECT id_ue as id FROM ue WHERE nom = :nom");
|
||||
$getUEUID->execute(array( ':nom' => $nom ));
|
||||
|
||||
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID du module
|
||||
return $getUEUID->fetch()['id'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE LES INFORMATIONS D'UN UE D'UID DONNÉ
|
||||
*
|
||||
* @UEUID<int> l'UID de l'UE duquel on veut les infos
|
||||
*
|
||||
* @return UE<Array> tableau associatif contenant tout les champs de la BDD pour cet UE
|
||||
*
|
||||
*/
|
||||
public static function info($UEUID){
|
||||
$getUEInfo = DataBase::getPDO()->prepare("SELECT id_ue, nom, libelle FROM ue WHERE id_ue = :UEUID");
|
||||
$getUEInfo->execute(array( ':UEUID' => $UEUID ));
|
||||
|
||||
// on retourne le résultat en supprimant les doublons à indices numériques
|
||||
return $getUEInfo->fetch();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE LA LISTE DES UEs QU'A UN ETUDIANT POUR UN SEMESTRE
|
||||
*
|
||||
* @etudiant<String> Identifiant de l'étudiant
|
||||
* @semestre<int> l'UID du semestre
|
||||
*
|
||||
* @return UEs<Array> retourne un tableau contenant les UEs de l'utilisateur pour ce semestre
|
||||
*
|
||||
*/
|
||||
public static function forStudent($etudiant, $semestre){
|
||||
// on récupère les modules
|
||||
$getUesForStudent = DataBase::getPDO()->prepare("SELECT ue.id_ue as id, s.annee, ue.nom, ue.libelle ".
|
||||
"FROM appartenance as app, semestre as s, mcc_ue, ue ".
|
||||
"WHERE app.id_semestre = s.id_semestre ".
|
||||
"AND mcc_ue.id_semestre = s.id_semestre ".
|
||||
"AND mcc_ue.id_ue = ue.id_ue ".
|
||||
|
||||
"AND app.id_etudiant = :etudiant ".
|
||||
"AND s.id_semestre = :semestre ".
|
||||
"ORDER BY ue.nom, ue.libelle");
|
||||
$getUesForStudent->execute(array( ':etudiant' => $etudiant, ':semestre' => $semestre ));
|
||||
|
||||
return DataBase::delNumeric( $getUesForStudent->fetchAll() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* CREE UN NOUVEAU MODULE DANS LA BASE DE DONNES
|
||||
*
|
||||
* @nom<String> le nom du nouveau module
|
||||
* @libelle<String> le libellé du nouveau module
|
||||
*
|
||||
* @return UID<String> l'UID du nouveau module s'il a bien été créé
|
||||
* @return created<Boolean> VRAI si le module n'existait pas déjà* et qu'il a bien été créé
|
||||
* (*) Si aucun autre n'avait le même @nom
|
||||
*/
|
||||
public static function creer($nom, $libelle){
|
||||
/* [1] On normalise les données
|
||||
=================================================================================================*/
|
||||
$nom = strtoupper($nom); // nom en majuscules
|
||||
|
||||
/* [2] On vérifie que le module n'est pas déjà créé
|
||||
=================================================================================================*/
|
||||
if( $this->UID($nom) ) // si on a un résultat, c'est qu'un module a déjà cee nom
|
||||
return false;
|
||||
|
||||
/* [3] On créé le nouvel utilisateur
|
||||
=================================================================================================*/
|
||||
$creationModule = DataBase::getPDO()->prepare("INSERT INTO module(id_module, nom, libelle) ".
|
||||
"VALUES(DEFAULT, :nom, :libelle)");
|
||||
$creationModule->execute(array(
|
||||
':nom' => $nom,
|
||||
':libelle' => $libelle
|
||||
));
|
||||
|
||||
|
||||
/* [4] On vérifie que l'utilisateur a bien été créé
|
||||
=================================================================================================*/
|
||||
return $this->UID($nom);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -14,16 +14,47 @@ class userRepo extends DBAccess{
|
|||
*
|
||||
* @identifiant<String> l'identifiant de l'utilisateur recherché
|
||||
*
|
||||
* @semestre<int> ***OPTIONNEL*** l'UID du semestre auquel on veut vérifier que l'étudiant est inscrit
|
||||
* @annee<int> ***OPTIONNEL*** l'année auquelle on veut vérifier si l'enseignant enseigne
|
||||
*
|
||||
* @return UID<String> si l'utilisateur est dans la BDD, retourne son UID
|
||||
* @return FALSE<Boolean> FAUX si l'utilisateur n'est pas présent dans la BDD
|
||||
*
|
||||
*/
|
||||
public static function UID($identifiant){
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
$getUtilisateurUID = DataBase::getPDO()->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :identifiant");
|
||||
$getUtilisateurUID->execute(array(
|
||||
':identifiant' => $identifiant
|
||||
));
|
||||
public static function UID($identifiant, $semestre=null, $annee=null){
|
||||
if( $semestre == null && $annee == null ){ // on cherche un utilisateur avec cet identifiant
|
||||
|
||||
/* [1] Cas où on cherche juste si l'utilisateur existe
|
||||
=============================================================*/
|
||||
$getUtilisateurUID = DataBase::getPDO()->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :identifiant");
|
||||
$getUtilisateurUID->execute(array( ':identifiant' => $identifiant ));
|
||||
|
||||
}elseif( $semestre != null ){
|
||||
|
||||
/* [2] Cas où on cherche si un étudiant est inscrit à un semestre
|
||||
==============================================================*/
|
||||
$getUtilisateurUID = DataBase::getPDO()->prepare("SELECT u.identifiant as id ".
|
||||
"FROM utilisateur as u, appartenance as app ".
|
||||
"WHERE u.identifiant = app.id_etudiant ".
|
||||
"AND u.identifiant = :identifiant ".
|
||||
"AND app.id_semestre = :semestre");
|
||||
$getUtilisateurUID->execute(array( ':identifiant' => $identifiant, ':semestre' => $semestre ));
|
||||
|
||||
}else{
|
||||
|
||||
/* [2] Cas où on cherche si un enseignant enseigne l'année donnée
|
||||
==============================================================*/
|
||||
$getUtilisateurUID = DataBase::getPDO()->prepare("SELECT DISTINCT u.identifiant as id ".
|
||||
"FROM utilisateur as u, enseignement as ens, semestre as s, mcc_module as mcc_m, mcc_ue ".
|
||||
"WHERE u.identifiant = ens.id_enseignant ".
|
||||
"AND ens.id_mcc_module = mcc_m.id_mcc_module ".
|
||||
"AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ".
|
||||
"AND mcc_ue.id_semestre = s.id_semestre ".
|
||||
"AND s.annee = :annee ".
|
||||
"AND u.identifiant = :identifiant");
|
||||
$getUtilisateurUID->execute(array( ':identifiant' => $identifiant, ':annee' => $annee ));
|
||||
|
||||
}
|
||||
|
||||
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID de l'utilisateur
|
||||
return $getUtilisateurUID->fetch()['id'];
|
||||
|
@ -115,4 +146,5 @@ class userRepo extends DBAccess{
|
|||
}
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue