Premiere étape du REFACTOR de manager/database.php en manager/repo/
This commit is contained in:
parent
86c643f9d6
commit
bfd64fb8d4
|
@ -1,5 +1,13 @@
|
|||
<?php require_once __ROOT__.'/manager/security.php';
|
||||
|
||||
/* INCLUSION DES REPOs */
|
||||
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/note.php';
|
||||
debug();
|
||||
|
||||
class DataBase{
|
||||
|
||||
|
@ -9,7 +17,7 @@ class DataBase{
|
|||
private $username;
|
||||
private $password;
|
||||
|
||||
private $pdo;
|
||||
public $pdo;
|
||||
|
||||
public function __construct($host, $dbname, $username, $password){
|
||||
$this->host = $host;
|
||||
|
@ -38,52 +46,6 @@ class DataBase{
|
|||
/* */
|
||||
/*************************************************************/
|
||||
|
||||
/********************************************************/
|
||||
/*** Vérifie l'existence d'un utilisateur dans le BDD ***/
|
||||
/********************************************************/
|
||||
private function utilisateurUID($identifiant){
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
$getUtilisateurUID = $this->pdo->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :identifiant");
|
||||
$getUtilisateurUID->execute(array(
|
||||
':identifiant' => $identifiant
|
||||
));
|
||||
|
||||
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID de l'utilisateur
|
||||
return $getUtilisateurUID->fetch()['id'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************/
|
||||
/*** Vérifie l'existence d'un groupe dans le BDD ***/
|
||||
/***************************************************/
|
||||
private function groupeUID($nom){
|
||||
/*** on cherche un groupe avec ce nom ***/
|
||||
$getGroupeUID = $this->pdo->prepare("SELECT id_groupe as id FROM groupe WHERE nom = :nom");
|
||||
$getGroupeUID->execute(array(
|
||||
':nom' => $nom
|
||||
));
|
||||
|
||||
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID du groupe
|
||||
return $getGroupeUID->fetch()['id'];
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************/
|
||||
/*** Vérifie l'existence d'un semestre dans le BDD ***/
|
||||
/*****************************************************/
|
||||
private function semestreUID($rang, $annee){
|
||||
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
|
||||
$getSemestreUID = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee");
|
||||
$getSemestreUID->execute(array(
|
||||
':rang' => $rang,
|
||||
':annee' => $annee
|
||||
));
|
||||
|
||||
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID du semestre
|
||||
return $getSemestreUID->fetch()['id'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -143,7 +105,7 @@ class DataBase{
|
|||
/*********************************************************************************/
|
||||
public function utilisateurInfo($identifiant){
|
||||
// si l'utilisateur n'existe pas on retourne 'unknown_user'
|
||||
if( !($utilisateurUID=$this->utilisateurUID($identifiant)) ) return 'unknown_user';
|
||||
if( !($utilisateurUID=userRepo::UID($identifiant)) ) return 'unknown_user';
|
||||
|
||||
|
||||
$getUtilisateurInfo = $this->pdo->prepare("SELECT identifiant, prenom, nom, mail, droits FROM utilisateur WHERE identifiant = :identifiant");
|
||||
|
@ -154,6 +116,17 @@ class DataBase{
|
|||
|
||||
|
||||
|
||||
/* retourne le semestre courant d'un étudiant
|
||||
*
|
||||
* @etudiant<String> l'identifiant (UID) de l'étudiant à ajouter au groupe
|
||||
*
|
||||
* @return semestreUID<int> l'UID du semestre courant
|
||||
*
|
||||
*/
|
||||
public static function studentCurrent($etudiant){
|
||||
return '2';
|
||||
}
|
||||
|
||||
/**********************************************************/
|
||||
/* _____ _____ ____ _ _ _____ ______ _____ */
|
||||
/* / ____| __ \ / __ \| | | | __ \| ____|/ ____| */
|
||||
|
@ -169,69 +142,27 @@ class DataBase{
|
|||
/*** création d'un groupe dans la bdd ***/
|
||||
/****************************************/
|
||||
public function creerGroupe($nom){
|
||||
$getLastCount = $this->pdo->query('SELECT count(id_groupe) as count FROM groupe');
|
||||
$lastCount = (int) $getLastCount->fetch()['count'];
|
||||
|
||||
// on applique une normalisation
|
||||
$nom = strtoupper($nom); // nom en majuscules
|
||||
|
||||
$req = $this->pdo->prepare("INSERT INTO groupe(id_groupe, nom) VALUES(default, :nom)");
|
||||
|
||||
$req->execute(array(
|
||||
':nom' => $nom
|
||||
));
|
||||
|
||||
|
||||
$getNewCount = $this->pdo->query('SELECT count(id_groupe) as count FROM groupe');
|
||||
$newCount = (int) $getNewCount->fetch()['count'];
|
||||
|
||||
if( $newCount > $lastCount ) // si on a bien ajouté un entrée
|
||||
if( groupRepo::creer($nom) ) // si on a bien ajouté un entrée ou qu'elle n'existait pas déjà
|
||||
return 'success';
|
||||
else
|
||||
return 'error';
|
||||
|
||||
}
|
||||
|
||||
/******************************************************/
|
||||
/*** ajout d'un utilisateur à un groupe dans la bdd ***/
|
||||
/******************************************************/
|
||||
public function ajouterEtudiantGroupe($etudiant, $groupe, $semestre, $annee){
|
||||
$getLastCount = $this->pdo->query('SELECT count(id_etudiant) as count FROM appartenance');
|
||||
$lastCount = (int) $getLastCount->fetch()['count'];
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($etudiantUID=$this->utilisateurUID($etudiant)) ) return 'unknown_user';
|
||||
if( !($etudiantUID=userRepo::UID($etudiant)) ) return 'unknown_user';
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_group' sinon on définit la variable
|
||||
if( !($groupeUID=$this->groupeUID($groupe)) ) return 'unknown_group';
|
||||
else $groupeUID = (int) $groupeUID;
|
||||
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=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
|
||||
|
||||
// si on a l'UID utilisateur & l'UID groupe => on créé l'association
|
||||
$asso = $this->pdo->prepare("INSERT INTO appartenance(id_etudiant, id_groupe, id_semestre) ".
|
||||
"VALUES( ".
|
||||
"(SELECT identifiant FROM utilisateur WHERE identifiant = :etudiantUID), ".
|
||||
"(SELECT id_groupe FROM groupe WHERE id_groupe = :groupeUID), ".
|
||||
"(SELECT id_semestre FROM semestre WHERE id_semestre = :semestreUID) ".
|
||||
" )");
|
||||
$asso->execute(array(
|
||||
':etudiantUID' => $etudiantUID,
|
||||
':groupeUID' => $groupeUID,
|
||||
':semestreUID' => $semestreUID
|
||||
));
|
||||
|
||||
|
||||
|
||||
$getNewCount = $this->pdo->query('SELECT count(id_etudiant) as count FROM appartenance');
|
||||
$newCount = (int) $getNewCount->fetch()['count'];
|
||||
|
||||
if( $newCount > $lastCount ) // si on a bien ajouté un entrée
|
||||
if( groupRepo::ajouterMembre($etudiantUID, $groupeUID, $semestreUID) ) // si on a bien ajouté un entrée
|
||||
return 'success';
|
||||
else
|
||||
return 'error';
|
||||
|
@ -243,12 +174,10 @@ class DataBase{
|
|||
public function listeEtudiantsGroupe($groupe, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_group' sinon on définit la variable
|
||||
if( !($groupeUID=$this->groupeUID($groupe)) ) return 'unknown_group';
|
||||
else $groupeUID = (int) $groupeUID;
|
||||
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=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
|
||||
|
@ -286,8 +215,7 @@ class DataBase{
|
|||
/********************************************************************/
|
||||
public function listeEtudiantsTousGroupesSemestre($semestre, $annee){
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
// on cherche tout les groupes du même semestre de la même année
|
||||
|
@ -399,7 +327,7 @@ class DataBase{
|
|||
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($enseignantUID=$this->utilisateurUID($enseignant)) ) return 'unknown_user';
|
||||
if( !($enseignantUID=userRepo::UID($enseignant)) ) return 'unknown_user';
|
||||
|
||||
|
||||
// on cherche tout les groupes du même semestre de la même année
|
||||
|
@ -454,11 +382,10 @@ class DataBase{
|
|||
public function getGroupeEtudiant($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($etudiantUID=$this->utilisateurUID($etudiant)) ) return 'unknown_user';
|
||||
if( !($etudiantUID=userRepo::UID($etudiant)) ) return 'unknown_user';
|
||||
|
||||
|
||||
// on cherche le groupe associé
|
||||
|
@ -611,11 +538,10 @@ class DataBase{
|
|||
public function getModulesByUEByEtudiant($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($etudiantUID=$this->utilisateurUID($etudiant)) ) return 'unknown_user';
|
||||
if( !($etudiantUID=userRepo::UID($etudiant)) ) return 'unknown_user';
|
||||
|
||||
|
||||
|
||||
|
@ -686,12 +612,10 @@ class DataBase{
|
|||
public function getModulesEtudiant($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($etudiantUID=$this->utilisateurUID($etudiant)) ) return 'unknown_user';
|
||||
if( !($etudiantUID=userRepo::UID($etudiant)) ) return 'unknown_user';
|
||||
|
||||
|
||||
|
||||
|
@ -754,11 +678,10 @@ class DataBase{
|
|||
public function getUEsEtudiant($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($etudiantUID=$this->utilisateurUID($etudiant)) ) return 'unknown_user';
|
||||
if( !($etudiantUID=userRepo::UID($etudiant)) ) return 'unknown_user';
|
||||
|
||||
|
||||
|
||||
|
@ -994,8 +917,7 @@ class DataBase{
|
|||
public function getNotesByModules($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
|
@ -1042,7 +964,7 @@ class DataBase{
|
|||
public function getNotesByUEs($etudiant, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
|
@ -1092,8 +1014,7 @@ class DataBase{
|
|||
public function getModuleNotes($etudiant, $module, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
|
@ -1185,8 +1106,7 @@ class DataBase{
|
|||
public function getUENotes($etudiant, $UE, $semestre, $annee){
|
||||
|
||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
||||
if( !($semestreUID=$this->semestreUID($semestre, $annee)) ) return 'unknown_semestre';
|
||||
else $semestreUID = (int) $semestreUID;
|
||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
|
||||
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
|
|
|
@ -0,0 +1,168 @@
|
|||
<?php require_once __ROOT__.'/manager/security.php';
|
||||
|
||||
/********************************************************************/
|
||||
/* ____ ____ ___ _ _ ____ ____ _____ ____ ___ */
|
||||
/* / ___| _ \ / _ \| | | | _ \ | _ \| ____| _ \ / _ \ */
|
||||
/* | | _| |_) | | | | | | | |_) | | |_) | _| | |_) | | | | */
|
||||
/* | |_| | _ <| |_| | |_| | __/ | _ <| |___| __/| |_| | */
|
||||
/* \____|_| \_\\___/ \___/|_| |_| \_\_____|_| \___/ */
|
||||
/* */
|
||||
/********************************************************************/
|
||||
|
||||
class groupRepo{
|
||||
/* VERIFIE L'EXISTENCE D'UN GROUPE DANS LA BDD
|
||||
*
|
||||
* @nom<String> le nom du groupe recherché
|
||||
*
|
||||
* @return UID<int> si le groupe est dans la BDD, retourne son UID (auto_incr)
|
||||
* @return FALSE<Boolean> FAUX si aucun groupe avec ce nom n'est pas présent dans la BDD
|
||||
*
|
||||
*/
|
||||
public static function UID($nom){
|
||||
$db = DataBase::getInstance();
|
||||
|
||||
/*** on cherche un groupe avec ce nom ***/
|
||||
$getGroupeUID = $db->pdo->prepare("SELECT id_groupe as id FROM groupe WHERE nom = :nom");
|
||||
$getGroupeUID->execute(array(
|
||||
':nom' => $nom
|
||||
));
|
||||
|
||||
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID du groupe
|
||||
return $getGroupeUID->fetch()['id'];
|
||||
}
|
||||
|
||||
|
||||
/* VERIFIE L'EXISTENCE D'UNE APPARTENANCE DANS LA BDD
|
||||
*
|
||||
* @etudiant<String> l'identifiant (UID) de l'étudiant à ajouter au groupe
|
||||
* @groupe<String> le nom du groupe auquel on veut le ratacher
|
||||
* @semestre<int> l'UID du semestre pour lequel il sera membre
|
||||
*
|
||||
* @return UID<int> si l'appartenance est dans la BDD, retourne son UID (auto_incr)
|
||||
* @return FALSE<Boolean> FAUX si aucune appartenance pour cet étudiant à ce groupe pour ce semestre n'est pas présent dans la BDD
|
||||
*
|
||||
*/
|
||||
public static function appartenanceUID($etudiant, $groupe, $semestre){
|
||||
$db = DataBase::getInstance();
|
||||
|
||||
/*** on cherche un groupe avec ce nom ***/
|
||||
$getAppartenanceUID = $db->pdo->prepare("SELECT id_appartenance as id ".
|
||||
"FROM appartenance ".
|
||||
"WHERE id_etudiant = :etudiant ".
|
||||
"AND id_groupe = :groupe ".
|
||||
"AND id_semestre = :semestre");
|
||||
$getAppartenanceUID->execute(array(
|
||||
':etudiant' => $etudiant,
|
||||
':groupe' => $groupe,
|
||||
':semestre' => $semestre
|
||||
));
|
||||
|
||||
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID du groupe
|
||||
return $getAppartenanceUID->fetch()['id'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* CREER UN GROUPE AVEC CE NOM
|
||||
*
|
||||
* @nom<String> le nom du groupe à créer
|
||||
*
|
||||
* @return UID<int> l'UID du groupe maintenant créé
|
||||
* @return created<Boolean> FAUX si le groupe existait déjà ou qu'il n' pasa bien été créé
|
||||
*
|
||||
*/
|
||||
public static function creer($nom){
|
||||
$db = DataBase::getInstance();
|
||||
|
||||
/* [1] On vérifie l'existence d'un groupe avec ce nom
|
||||
======================================================*/
|
||||
if( $this->UID($nom) ) // si le groupe existe déjà
|
||||
return false; // on retourne FAUX
|
||||
|
||||
/* [2] On créé le groupe
|
||||
=========================*/
|
||||
$nom = strtoupper($nom); // on met le nom en majuscules
|
||||
|
||||
// on créé et envoie la requête de création du groupe
|
||||
$creerGroupe = $db->pdo->prepare("INSERT INTO groupe(id_groupe, nom) VALUES(default, :nom)");
|
||||
$creerGroupe->execute(array(
|
||||
':nom' => $nom
|
||||
));
|
||||
|
||||
/* [3] On vérifie si le groupe a bien été créé
|
||||
===============================================*/
|
||||
return $this->UID($nom);
|
||||
}
|
||||
|
||||
|
||||
/* AJOUTER UN MEMBRE A UN GROUPE
|
||||
*
|
||||
* @etudiant<String> l'identifiant (UID) de l'étudiant à ajouter au groupe
|
||||
* @groupe<int> l'UID du groupe auquel on veut le ratacher
|
||||
* @semestre<int> l'UID du semestre pour lequel il sera membre
|
||||
*
|
||||
* @UID<Boolean> l'UID de l'appartenance si l'utilisateur a été ajouté au groupe pour ce semestre
|
||||
* @member<Boolean> FAUX si l'utilisateur n'a pas été créé pour une quelconque erreur
|
||||
*
|
||||
*/
|
||||
public static function ajouterMembre($etudiant, $groupe, $semestre){
|
||||
$db = DataBase::getInstance();
|
||||
|
||||
/* [1] On vérifie si l'utilisateur appartient à un groupe pour ce semestre
|
||||
===========================================================================*/
|
||||
$dejaMembre = $db->pdo->prepare("SELECT id_appartenance as id ".
|
||||
"FROM appartenance ".
|
||||
"WHERE id_etudiant = :etudiant ".
|
||||
"AND id_semestre = :semestre ");
|
||||
$dejaMembre->execute(array(
|
||||
':etudiant' => $etudiant,
|
||||
':semestre' => $semestre
|
||||
));
|
||||
|
||||
if( $appartenanceUID = $dejaMembre->fetch()['id'] ){ // si c'est le cas
|
||||
|
||||
/* [2] On modifie l'appartenance
|
||||
==============================*/
|
||||
// création et exécution de la requête de modification de l'appartenance
|
||||
$ajouterMembres = $db->pdo->prepare("UPDATE appartenance ".
|
||||
"SET id_groupe = :groupe ".
|
||||
"WHERE id_appartenance = :appartenanceUID");
|
||||
$ajouterMembre->execute(array(
|
||||
':groupe' => $groupeUID,
|
||||
':appartenanceUID' => $appartenanceUID
|
||||
));
|
||||
|
||||
}else{ // si l'utilisateur n'a pas de groupe pour ce semestre
|
||||
|
||||
/* [2] On créé l'appartenance
|
||||
==============================*/
|
||||
// création et exécution de la requête de création d'appartenance
|
||||
$ajouterMembres = $db->pdo->prepare("INSERT INTO appartenance(id_etudiant, id_groupe, id_semestre) ".
|
||||
"VALUES( ".
|
||||
"(SELECT identifiant FROM utilisateur WHERE identifiant = :etudiant), ".
|
||||
"(SELECT id_groupe FROM groupe WHERE id_groupe = :groupe), ".
|
||||
"(SELECT id_semestre FROM semestre WHERE id_semestre = :semestre) ".
|
||||
" )");
|
||||
$ajouterMembre->execute(array(
|
||||
':etudiant' => $etudiantUID,
|
||||
':groupe' => $groupeUID,
|
||||
':semestre' => $semestre
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
/* [3] On vérifie que l'appartenance est bien définie
|
||||
======================================================*/
|
||||
return $this->appartenanceUID($etudiant, $groupe, $semestre);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
<?php require_once __ROOT__.'/manager/security.php';
|
||||
|
||||
/**************************************************************************************/
|
||||
/* ____ _____ __ __ _____ ____ _____ ____ _____ ____ _____ ____ ___ */
|
||||
/* / ___|| ____| \/ | ____/ ___|_ _| _ \| ____| | _ \| ____| _ \ / _ \ */
|
||||
/* \___ \| _| | |\/| | _| \___ \ | | | |_) | _| | |_) | _| | |_) | | | | */
|
||||
/* ___) | |___| | | | |___ ___) || | | _ <| |___ | _ <| |___| __/| |_| | */
|
||||
/* |____/|_____|_| |_|_____|____/ |_| |_| \_\_____| |_| \_\_____|_| \___/ */
|
||||
/* */
|
||||
/**************************************************************************************/
|
||||
|
||||
class semestreRepo{
|
||||
/* VERIFIE L'EXISTENCE D'UN GROUPE DANS LA BDD
|
||||
*
|
||||
* @rang<int> le rang du semestre dans le parcours (1<=>S1, 2<=>S2, ..)
|
||||
* @annee<int> l'année du début du parcours
|
||||
*
|
||||
*
|
||||
* @return UID<int> si le semestre est dans la BDD, retourne son UID (auto_incr)
|
||||
* @return FALSE<Boolean> FAUX si aucun semestre avec ce rang et annee n'est pas présent dans la BDD
|
||||
*
|
||||
*/
|
||||
public static function UID($rang, $annee){
|
||||
// si les 2 ne sont pas des nombres (même dans une string)
|
||||
if( !is_numeric($rang) || !is_numeric($annee) )
|
||||
return false; // aucun résultat possible
|
||||
|
||||
|
||||
$db = DataBase::getInstance();
|
||||
|
||||
/*** on cherche un semestre avec ce rang et cette année (qui est forcément unique) ***/
|
||||
$getSemestreUID = $db->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee");
|
||||
$getSemestreUID->execute(array(
|
||||
':rang' => $rang,
|
||||
':annee' => $annee
|
||||
));
|
||||
|
||||
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID du semestre
|
||||
return $getSemestreUID->fetch()['id'];
|
||||
}
|
||||
|
||||
|
||||
/* retourne le semestre courant d'un étudiant
|
||||
*
|
||||
* @etudiant<String> l'identifiant (UID) de l'étudiant à ajouter au groupe
|
||||
*
|
||||
* @return semestreUID<int> l'UID du semestre courant
|
||||
*
|
||||
*/
|
||||
public static function studentCurrent($etudiant){
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
<?php require_once __ROOT__.'/manager/security.php';
|
||||
|
||||
/**************************************************************/
|
||||
/* _ _ ____ _____ ____ ____ _____ ____ ___ */
|
||||
/* | | | / ___|| ____| _ \ | _ \| ____| _ \ / _ \ */
|
||||
/* | | | \___ \| _| | |_) | | |_) | _| | |_) | | | | */
|
||||
/* | |_| |___) | |___| _ < | _ <| |___| __/| |_| | */
|
||||
/* \___/|____/|_____|_| \_\ |_| \_\_____|_| \___/ */
|
||||
/* */
|
||||
/**************************************************************/
|
||||
|
||||
class userRepo{
|
||||
/* VERIFIE L'EXISTENCE D'UN UTILISATEUR DANS LA BDD
|
||||
*
|
||||
* @identifiant<String> l'identifiant de l'utilisateur recherché
|
||||
*
|
||||
* @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){
|
||||
$db = DataBase::getInstance();
|
||||
|
||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||
$getUtilisateurUID = $db->pdo->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :identifiant");
|
||||
$getUtilisateurUID->execute(array(
|
||||
':identifiant' => $identifiant
|
||||
));
|
||||
|
||||
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID de l'utilisateur
|
||||
return $getUtilisateurUID->fetch()['id'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -172,14 +172,15 @@ require_once __ROOT__.'/manager/database.php';
|
|||
// SI (mois < 8) ALORS (annee - 1) SINON (annee)
|
||||
$_SESSION['annee'] = (Date('m', time())<8) ? Date('Y', time()) - 1 : Date('Y', time());
|
||||
|
||||
// on défini si le semestre est pair ou non
|
||||
$_SESSION['semestre_pair'] = semestrePair(time());
|
||||
|
||||
/* TEMPORAIRE */
|
||||
$_SESSION['semestre'] = 2;
|
||||
|
||||
}else
|
||||
return 'not_in_db';
|
||||
|
||||
/******************************* TEMPO *********************************/
|
||||
/*** ON VA CHERCHER LES INFOS DANS LA BDD ***/
|
||||
|
||||
$_SESSION['semestre'] = '2';
|
||||
/***********************************************************************/
|
||||
return 'success';
|
||||
}else
|
||||
return 'wrong_password';
|
||||
|
@ -189,4 +190,21 @@ require_once __ROOT__.'/manager/database.php';
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* RETOURNE LES SEMESTRES EN COURS
|
||||
*
|
||||
* détermine si les semestres IMPAIRS ou PAIRS sont en cours
|
||||
*
|
||||
* @return isEven<Boolean> VRAI si pair, sinon FAUX (impair)
|
||||
*
|
||||
*/
|
||||
function semestrePair($timestamp=null){
|
||||
// si $datetime n'est pas défini, on prend la date actuelle
|
||||
if( $timestamp == null )
|
||||
$timestamp = time();
|
||||
|
||||
return Date('m', $timestamp) < 8;
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in New Issue