Premiere étape du REFACTOR de manager/database.php en manager/repo/

This commit is contained in:
xdrm-brackets 2015-11-09 22:05:57 +01:00
parent 86c643f9d6
commit bfd64fb8d4
7 changed files with 331 additions and 129 deletions

View File

@ -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 ***/

168
manager/repo/group.php Normal file
View File

@ -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);
}
}

58
manager/repo/semestre.php Normal file
View File

@ -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){
}
}

36
manager/repo/user.php Normal file
View File

@ -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'];
}
}

View File

@ -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;
}
?> ?>

View File

@ -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 ***/