le nom de l'UE recherchée * * @return UID si l'UE est dans la BDD, retourne son UID * @return FALSE FAUX si l'UE' n'est pas présent dans la BDD * */ public static function UID($nom){ $getUEUID = DataBase::getPDO()->prepare("SELECT DISTINCT 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 l'UID de l'UE duquel on veut les infos * * @return UE tableau associatif contenant tout les champs de la BDD pour cet UE * */ public static function info($UEUID){ $getUEInfo = DataBase::getPDO()->prepare("SELECT DISTINCT id_ue as id, 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 Identifiant de l'étudiant * @semestre l'UID du semestre * * @return UEs 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 DISTINCT 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() ); } /* RENVOIE LA LISTE DES UEs QU'ENSEIGNE UN ENSEIGNANT POUR UNE ANNEE * * @enseignant Identifiant de l'enseignant * @semestre_pair VRAI si le semestre est pair * @annee l'année en cours * * @return UEs retourne un tableau contenant les UEs de l'enseignant pour cette année * */ public static function forTeacher($enseignant, $semestre_pair, $annee){ // on récupère les modules $getUesForTeacher = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.annee, s.rang, ue.nom, ue.libelle ". "FROM enseignement as ens, semestre as s, ue, mcc_ue, mcc_module as mcc_m ". "WHERE 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 mcc_ue.id_ue = ue.id_ue ". "AND ens.id_enseignant = :enseignant ". "AND s.rang % 2 = :semestre_pair ". "AND s.annee = :annee ". "ORDER BY ue.nom, ue.libelle ASC"); $getUesForTeacher->execute(array( ':enseignant' => $enseignant, ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee )); return DataBase::delNumeric( $getUesForTeacher->fetchAll() ); } /* RENVOIE LA LISTE DES UEs D'UNE ANNEE COURANTE (SEMESTRES COURANTS) * * @semestre_pair VRAI si le semestre est pair * @annee l'année en cours * * @return UEs retourne un tableau contenant les UEs des semestres en cours * @return existent FAUX si aucun UE n'a été trouvé * */ public static function forYear($semestre_pair, $annee){ // on récupère les modules $getUEsForYear = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, ue.nom, ue.libelle ". "FROM ue, mcc_ue, semestre as s ". "WHERE ue.id_ue = mcc_ue.id_ue ". "AND mcc_ue.id_semestre = s.id_semestre ". "AND s.rang % 2 = :semestre_pair ". "AND s.annee = :annee ". "ORDER BY s.rang, ue.nom, ue.libelle"); $getUEsForYear->execute(array( ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee )); return DataBase::delNumeric( $getUEsForYear->fetchAll() ); } /* CREE UN NOUVEL UE DANS LA BASE DE DONNES * * @nom le nom du nouvel UE * @libelle le libellé du nouvel UE * * @return UID l'UID du nouveal UE s'il a bien été créé * @return created VRAI si l'UE 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( ueRepo::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 UE =================================================================================================*/ $creationUE = DataBase::getPDO()->prepare("INSERT INTO ue(id_ue, nom, libelle) ". "VALUES(DEFAULT, :nom, :libelle)"); $creationUE->execute(array( ':nom' => $nom, ':libelle' => $libelle )); /* [4] On vérifie que l'UE a bien été créé =================================================================================================*/ return ueRepo::UID($nom); } }