sid/manager/notifications.php

220 lines
5.4 KiB
PHP
Executable File

<?php
// GESTION DES NOTIFICATIONS
// ====================== IDÉE DE FONCTIONNEMENT ======================
// L'étudiant sera notifié par les actions suivantes : - un changement de groupe
// - un changement de semestre [ OPTIONNEL ]
// - une nouvelle note
// - une modification de coeff [ OPTIONNEL ]
// - l'acquisition des résultats du jury par le site
//
// Lors de la connexion de l'étudiant, un marqueur représenter par "une cloche" indiquera le nombre de notifications,
// une petite animation par notre chère Adrien #xdrm-brackets serait pas mal du tout
//
// Pour gérer ces notifications, je propose d'inclure une colonne notifications à chaque étududiant, grâce aux fonctions
// pushNotifications() ainsi que popNotifications(), nous pourrions gérer les notifications sous la forme d'une pile, qui a
// mon sens semble être la meilleur option, les fonctions pushNotifications() et popNotifications seront à implémentées
// pour gérer le flux de notifications
//
// =====================================================================
class notificationsManager{
// /* [1] ROUTAGE DE NIVEAU 1
// ============================================================*/
public static function switch_lvl1($request, $answer) {
switch( $request->level_1 ) {
/*********************************************/
/* Notification pour un changement de groupe */
/*********************************************/
case 'changement_groupe':
if(isset($request->formation) && isset($request->idEtudiant) && isset($request->nouveauGroupe)) {
$request->pushNotifications = 'Vous avez changé de groupe, vous êtes désormais dans le groupe : '.$request->nouveauGroupe ;
if(pushNotifications($request) == 'succes') {
$answer->request = 'succes';
}
else {
$answer->request = 'param_error';
}
}
else {
$answer->request = 'param_error';
}
break;
/***************************************/
/* Notification pour une nouvelle note */
/***************************************/
case 'ajout_note':
if(isset($request->formation) && isset($request->idEtudiant) && isset($request->note) && isset($request->module)) {
$request->pushNotifications = 'Vous avez une nouvelle note, vous avez obtenu : '.$request->note.'/20'.' '.'Dans le module : '.$request->module;
if(pushNotifications($request) == 'succes') {
$answer->request = 'succes';
}
else {
$answer->request = 'param_error';
}
}
else {
$answer->request = 'param_error';
}
break;
/********************************************/
/* Notifications pour les résultats du jury */
/********************************************/
case 'Résultat_jury':
if((isset($request->formation) && isset($request->idEtudiant) && isset($request->semestre)) && isset($request->avisJury)) {
$request->pushNotifications = 'Vous avez un obtenu un avis du jury pour votre semestre :'.$request->semestre.' '.'Avis : '.$request->avisJury;
}
if(pushNotifications($request) == 'succes') {
$answer->request = 'succes';
}
else {
$answer->request = 'param_error';
}
}
else {
$answer->request = 'param_error';
}
break;
// [ OPTIONNEL ]
/******************************************/
/* Notifications pour un nouveau semestre */
/******************************************/
case 'changement_semestre':
if((isset($request->formation) && isset($request->idEtudiant) && isset($request->semestre)) {
$request->pushNotifications = 'Un nouveau semestre débute : S'.$request->semestre.' '.'!';
}
if(pushNotifications($request) == 'succes') {
$answer->request = 'succes';
}
else {
$answer->request = 'param_error';
}
}
else {
$answer->request = 'param_error';
}
break;
// [ OPTIONNEL ]
/************************************************/
/* Notifications pour une modification de coeff */
/************************************************/
case 'Modification_coeff':
if((isset($request->formation) && isset($request->idEtudiant) && isset($request->semestre) && isset($request->anciencCoeff) && isset($request->nouveauCoeff)) {
$request->pushNotifications = 'Dans le module : '.$request->module.' '.', le coefficient passe de '.$request->anciencCoeff.' à '.$request->nouveauCoeff;
}
if(pushNotifications($request) == 'succes') {
$answer->request = 'succes';
}
else {
$answer->request = 'param_error';
}
}
else {
$answer->request = 'param_error';
}
break;
}
}
// Consulter adrien pour l'ajout d'une colonne "notifications" et l'accés à la BD
/***************************/
/* Ajoute une notification */
/***************************/
function pushNotifications($request) {
// INSERT INTO etudiant.notifiaction VALUES($request->pushNotifications)..
return 'succes';
}
/*****************************/
/* Supprime une notification */
/*****************************/
function popNotifications($request) {
// DELETE etudiant.notifiaction $request->pushNotifications..
return 'succes';
}
}
?>