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';
|
<?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{
|
class DataBase{
|
||||||
|
|
||||||
|
@ -9,7 +17,7 @@ class DataBase{
|
||||||
private $username;
|
private $username;
|
||||||
private $password;
|
private $password;
|
||||||
|
|
||||||
private $pdo;
|
public $pdo;
|
||||||
|
|
||||||
public function __construct($host, $dbname, $username, $password){
|
public function __construct($host, $dbname, $username, $password){
|
||||||
$this->host = $host;
|
$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){
|
public function utilisateurInfo($identifiant){
|
||||||
// si l'utilisateur n'existe pas on retourne 'unknown_user'
|
// 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");
|
$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 ***/
|
/*** création d'un groupe dans la bdd ***/
|
||||||
/****************************************/
|
/****************************************/
|
||||||
public function creerGroupe($nom){
|
public function creerGroupe($nom){
|
||||||
$getLastCount = $this->pdo->query('SELECT count(id_groupe) as count FROM groupe');
|
if( groupRepo::creer($nom) ) // si on a bien ajouté un entrée ou qu'elle n'existait pas déjà
|
||||||
$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
|
|
||||||
return 'success';
|
return 'success';
|
||||||
else
|
else
|
||||||
return 'error';
|
return 'error';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************/
|
/******************************************************/
|
||||||
/*** ajout d'un utilisateur à un groupe dans la bdd ***/
|
/*** ajout d'un utilisateur à un groupe dans la bdd ***/
|
||||||
/******************************************************/
|
/******************************************************/
|
||||||
public function ajouterEtudiantGroupe($etudiant, $groupe, $semestre, $annee){
|
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"
|
// 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
|
// si on trouve pas, on retourne 'unknown_group' sinon on définit la variable
|
||||||
if( !($groupeUID=$this->groupeUID($groupe)) ) return 'unknown_group';
|
if( !($groupeUID=groupRepo::UID($groupe)) ) return 'unknown_group'; else $groupeUID = (int) $groupeUID;
|
||||||
else $groupeUID = (int) $groupeUID;
|
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
||||||
else $semestreUID = (int) $semestreUID;
|
|
||||||
|
|
||||||
|
|
||||||
|
if( groupRepo::ajouterMembre($etudiantUID, $groupeUID, $semestreUID) ) // si on a bien ajouté un entrée
|
||||||
|
|
||||||
// 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
|
|
||||||
return 'success';
|
return 'success';
|
||||||
else
|
else
|
||||||
return 'error';
|
return 'error';
|
||||||
|
@ -243,12 +174,10 @@ class DataBase{
|
||||||
public function listeEtudiantsGroupe($groupe, $semestre, $annee){
|
public function listeEtudiantsGroupe($groupe, $semestre, $annee){
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_group' sinon on définit la variable
|
// si on trouve pas, on retourne 'unknown_group' sinon on définit la variable
|
||||||
if( !($groupeUID=$this->groupeUID($groupe)) ) return 'unknown_group';
|
if( !($groupeUID=groupRepo::UID($groupe)) ) return 'unknown_group'; else $groupeUID = (int) $groupeUID;
|
||||||
else $groupeUID = (int) $groupeUID;
|
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
||||||
else $semestreUID = (int) $semestreUID;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -286,8 +215,7 @@ class DataBase{
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
public function listeEtudiantsTousGroupesSemestre($semestre, $annee){
|
public function listeEtudiantsTousGroupesSemestre($semestre, $annee){
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
||||||
else $semestreUID = (int) $semestreUID;
|
|
||||||
|
|
||||||
|
|
||||||
// on cherche tout les groupes du même semestre de la même année
|
// 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"
|
// 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
|
// 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){
|
public function getGroupeEtudiant($etudiant, $semestre, $annee){
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
||||||
else $semestreUID = (int) $semestreUID;
|
|
||||||
|
|
||||||
// si on trouve pas, on retourne "unknown_user"
|
// 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é
|
// on cherche le groupe associé
|
||||||
|
@ -611,11 +538,10 @@ class DataBase{
|
||||||
public function getModulesByUEByEtudiant($etudiant, $semestre, $annee){
|
public function getModulesByUEByEtudiant($etudiant, $semestre, $annee){
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
||||||
else $semestreUID = (int) $semestreUID;
|
|
||||||
|
|
||||||
// si on trouve pas, on retourne "unknown_user"
|
// 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){
|
public function getModulesEtudiant($etudiant, $semestre, $annee){
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
||||||
else $semestreUID = (int) $semestreUID;
|
|
||||||
|
|
||||||
|
|
||||||
// si on trouve pas, on retourne "unknown_user"
|
// 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){
|
public function getUEsEtudiant($etudiant, $semestre, $annee){
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
||||||
else $semestreUID = (int) $semestreUID;
|
|
||||||
|
|
||||||
// si on trouve pas, on retourne "unknown_user"
|
// 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){
|
public function getNotesByModules($etudiant, $semestre, $annee){
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
||||||
else $semestreUID = (int) $semestreUID;
|
|
||||||
|
|
||||||
|
|
||||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||||
|
@ -1042,7 +964,7 @@ class DataBase{
|
||||||
public function getNotesByUEs($etudiant, $semestre, $annee){
|
public function getNotesByUEs($etudiant, $semestre, $annee){
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
else $semestreUID = (int) $semestreUID;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1092,8 +1014,7 @@ class DataBase{
|
||||||
public function getModuleNotes($etudiant, $module, $semestre, $annee){
|
public function getModuleNotes($etudiant, $module, $semestre, $annee){
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
||||||
else $semestreUID = (int) $semestreUID;
|
|
||||||
|
|
||||||
|
|
||||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
/*** on cherche un utilisateur avec cet identifiant ***/
|
||||||
|
@ -1185,8 +1106,7 @@ class DataBase{
|
||||||
public function getUENotes($etudiant, $UE, $semestre, $annee){
|
public function getUENotes($etudiant, $UE, $semestre, $annee){
|
||||||
|
|
||||||
// si on trouve pas, on retourne 'unknown_semestre', sinon on définit la variable
|
// 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;
|
||||||
else $semestreUID = (int) $semestreUID;
|
|
||||||
|
|
||||||
|
|
||||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
/*** 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)
|
// SI (mois < 8) ALORS (annee - 1) SINON (annee)
|
||||||
$_SESSION['annee'] = (Date('m', time())<8) ? Date('Y', time()) - 1 : Date('Y', time());
|
$_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
|
}else
|
||||||
return 'not_in_db';
|
return 'not_in_db';
|
||||||
|
|
||||||
/******************************* TEMPO *********************************/
|
|
||||||
/*** ON VA CHERCHER LES INFOS DANS LA BDD ***/
|
|
||||||
|
|
||||||
$_SESSION['semestre'] = '2';
|
|
||||||
/***********************************************************************/
|
|
||||||
return 'success';
|
return 'success';
|
||||||
}else
|
}else
|
||||||
return 'wrong_password';
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
4
test.php
4
test.php
|
@ -1,7 +1,9 @@
|
||||||
<?php define('__ROOT__', dirname(__FILE__) );
|
<?php define('__ROOT__', dirname(__FILE__) );
|
||||||
require_once __ROOT__.'/manager/security.php';
|
require_once __ROOT__.'/manager/security.php';
|
||||||
|
|
||||||
var_dump( $_SESSION['droits'] );
|
$timestamp = time();
|
||||||
|
|
||||||
|
var_dump( Date('m', $timestamp)<8 );
|
||||||
|
|
||||||
/***************/
|
/***************/
|
||||||
/*** A FAIRE ***/
|
/*** A FAIRE ***/
|
||||||
|
|
Loading…
Reference in New Issue