2015-10-29 23:01:35 +00:00
< ? php
require_once __ROOT__ . '/manager/security.php' ;
require_once __ROOT__ . '/manager/database.php' ;
/***********************************************************
* *
* MANAGER DES MODULES *
* *
************************************************************
* *
* [ 0 ] Constantes *
* [ 1 ] ROUTAGE de niveau 1 *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
***********************************************************/
/* [ 1 ] ROUTAGE DE NIVEAU 1
============================================================*/
function career_switch_level_1 ( $request , $answer ){
switch ( $request -> level_1 ){
/***************************/
/* liste des notes par UEs */
/***************************/
2015-11-13 18:07:36 +00:00
case 'getNotesEtudiant' : if ( permission ( 'student' ) ){
2015-11-08 21:30:23 +00:00
2015-11-19 22:32:54 +00:00
$areSetParam = isset ( $request -> etudiant ) && isset ( $request -> semestre ) && isset ( $request -> annee ) && isset ( $request -> formation ); // les arguments existent
$typeOkParam = $areSetParam && is_string ( $request -> etudiant ) && is_string ( $request -> semestre ) && is_string ( $request -> annee ) && is_numeric ( $request -> formation ); // si c'est des strings
2015-11-08 21:30:23 +00:00
$nEmptyParam = $typeOkParam && strlen ( $request -> etudiant ) > 0 && is_numeric ( $request -> semestre ) && is_numeric ( $request -> annee ); // des bon types
2015-11-19 22:32:54 +00:00
$etudiantCheck = $nEmptyParam && preg_match ( '/^[\w -]{3,50}$/i' , $request -> etudiant ); // nom bon format
$formationCheck = $etudiantCheck && preg_match ( '/^[1-4]{1}$/i' , $request -> formation ); // formation (formation) bon format
$semestreCheck = $formationCheck && preg_match ( '/^[1-4]{1}$/i' , $request -> semestre ); // semestre (semestre) bon format
$anneeCheck = $semestreCheck && preg_match ( '/^[0-9]{4}$/i' , $request -> annee ); // semestre (annee) bon format
2015-11-08 21:30:23 +00:00
if ( $anneeCheck ){ // si tout les paramètres sont bons
2015-11-19 22:32:54 +00:00
$UEs = DataBase :: getInstance () -> getNotesEtudiant ( $request -> etudiant , $request -> formation , $request -> semestre , $request -> annee );
2015-11-08 21:30:23 +00:00
2015-11-12 10:19:58 +00:00
if ( is_array ( $UEs ) ){ // si on a bien un tableau
$answer -> UEs = $UEs ; // on renvoie dans answer->note
2015-11-08 21:30:23 +00:00
$answer -> request = 'success' ; // et on renvoie success
} else // sinon si c'est pas un tableau
2015-11-12 10:19:58 +00:00
$answer -> request = $UEs ; // on retourne l'erreur
2015-11-08 21:30:23 +00:00
} else
$answer -> request = 'param_error' ;
2015-10-29 23:01:35 +00:00
} else
2015-11-08 21:30:23 +00:00
$answer -> request = 'permission_error' ;
2015-10-29 23:01:35 +00:00
break ;
2015-11-26 17:17:05 +00:00
/***************************************/
/* liste des contrôles d'un enseignant */
/***************************************/
2015-11-13 18:07:36 +00:00
case 'getControlesEnseignant' : if ( permission ( 'teacher' ) ){
$areSetParam = isset ( $request -> enseignant ) && isset ( $request -> annee ); // les arguments existent
$typeOkParam = $areSetParam && is_string ( $request -> enseignant ) && is_string ( $request -> annee ); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen ( $request -> enseignant ) > 0 && is_numeric ( $request -> annee ); // des bon types
$enseignantCheck = $nEmptyParam && preg_match ( '/^[\w -]{3,50}$/i' , $request -> enseignant ); // nom bon format
$anneeCheck = $enseignantCheck && preg_match ( '/^[0-9]{4}$/i' , $request -> annee ); // semestre (annee) bon format
if ( $anneeCheck ){ // si tout les paramètres sont bons
2015-11-16 12:28:24 +00:00
$semestreList = DataBase :: getInstance () -> getControlesEnseignant ( $request -> enseignant , $_SESSION [ 'semestre_pair' ], $request -> annee );
2015-11-13 18:07:36 +00:00
2015-11-16 12:28:24 +00:00
if ( is_array ( $semestreList ) ){ // si on a bien un tableau
$answer -> semestres = $semestreList ; // on renvoie dans answer->semestreList
2015-11-13 18:07:36 +00:00
$answer -> request = 'success' ; // et on renvoie success
} else // sinon si c'est pas un tableau
2015-11-16 12:28:24 +00:00
$answer -> request = $semestreList ; // on retourne l'erreur
2015-11-13 18:07:36 +00:00
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-26 17:17:05 +00:00
/**********************************/
/* liste des contrôles de l'année */
/**********************************/
case 'getControlesForYear' : if ( permission ( 'master' ) || permission ( 'admin' ) ){
$areSetParam = isset ( $request -> annee ); // les arguments existent
$typeOkParam = $areSetParam && is_string ( $request -> annee ); // si c'est des strings
$nEmptyParam = $typeOkParam && is_numeric ( $request -> annee ); // des bon types
$anneeCheck = $nEmptyParam && preg_match ( '/^[0-9]{4}$/i' , $request -> annee ); // semestre (annee) bon format
if ( $anneeCheck ){ // si tout les paramètres sont bons
$semestreList = DataBase :: getInstance () -> getControlesForYear ( $request -> annee );
if ( is_array ( $semestreList ) ){ // si on a bien un tableau
$answer -> semestres = $semestreList ; // on renvoie dans answer->semestreList
$answer -> request = 'success' ; // et on renvoie success
} else // sinon si c'est pas un tableau
$answer -> request = $semestreList ; // on retourne l'erreur
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
/****************************************************/
/* liste des notes pour un contrôle d'un enseignant */
/****************************************************/
2015-11-14 17:33:06 +00:00
case 'getNotesEnseignant' : if ( permission ( 'teacher' ) ){
$areSetParam = isset ( $request -> enseignant ) && isset ( $request -> controle ); // les arguments existent
$typeOkParam = $areSetParam && is_string ( $request -> enseignant ); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen ( $request -> enseignant ) > 0 && is_numeric ( $request -> controle ); // des bon types
$enseignantCheck = $nEmptyParam && preg_match ( '/^[\w -]{3,50}$/i' , $request -> enseignant ); // nom bon format
// paramètre optionnel
$optionalGroupe = isset ( $request -> groupe ) && is_string ( $request -> groupe ) && strlen ( $request -> groupe ) > 1 && preg_match ( '/^[a-z0-9 -]{1,10}$/i' , $request -> groupe );
2015-11-15 12:02:34 +00:00
// définition (ou pas) du paramètre optionnel
if ( $optionalGroupe ) $groupe = $request -> groupe ;
else $groupe = null ;
if ( $enseignantCheck ){ // si tout les paramètres sont bons
2015-11-26 18:06:27 +00:00
$controle = DataBase :: getInstance () -> getNotesForControleEnseignant ( $request -> enseignant , $_SESSION [ 'annee' ], $request -> controle , $groupe );
2015-11-15 12:02:34 +00:00
2015-11-26 17:17:05 +00:00
if ( is_array ( $controle ) ){ // si on a bien un tableau
$answer -> controle = $controle ; // on renvoie dans answer->controle
$answer -> request = 'success' ; // et on renvoie success
} else // sinon si c'est pas un tableau
$answer -> request = $controle ; // on retourne l'erreur
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
/************************************/
/* liste des notes pour un contrôle */
/************************************/
case 'getNotesForYear' : if ( permission ( 'master' ) || permission ( 'admin' ) ){
$areSetParam = isset ( $request -> controle ); // les arguments existent
$nEmptyParam = $areSetParam && is_numeric ( $request -> controle ); // des bon types
// paramètre optionnel
$optionalGroupe = isset ( $request -> groupe ) && is_string ( $request -> groupe ) && strlen ( $request -> groupe ) > 1 && preg_match ( '/^[a-z0-9 -]{1,10}$/i' , $request -> groupe );
// définition (ou pas) du paramètre optionnel
if ( $optionalGroupe ) $groupe = $request -> groupe ;
else $groupe = null ;
if ( $nEmptyParam ){ // si tout les paramètres sont bons
2015-11-26 18:06:27 +00:00
$controle = DataBase :: getInstance () -> getNotesForControle ( $_SESSION [ 'annee' ], $request -> controle , $groupe );
2015-11-26 17:17:05 +00:00
2015-11-26 19:37:41 +00:00
if ( is_array ( $controle ) ){ // si on a bien un tableau
2015-11-15 12:02:34 +00:00
$answer -> controle = $controle ; // on renvoie dans answer->controle
2015-11-26 19:37:41 +00:00
$answer -> request = 'success' ; // et on renvoie success
} else // sinon si c'est pas un tableau
$answer -> request = $controle ; // on retourne l'erreur
2015-11-15 12:02:34 +00:00
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-15 17:12:49 +00:00
/**********************************************/
/* informations relatives au dossier étudiant */
/**********************************************/
case 'studentcase' : if ( permission ( 'teacher' ) ){
$areSetParam = isset ( $request -> etudiant ) && isset ( $request -> controle ) && isset ( $request -> note ); // les arguments existent
$typeOkParam = $areSetParam && is_string ( $request -> etudiant ); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen ( $request -> etudiant ) > 0 && is_numeric ( $request -> controle ) && is_numeric ( $request -> note ); // des bon types
$etudiantCheck = $nEmptyParam && preg_match ( '/^[\w -]{3,50}$/i' , $request -> etudiant ); // nom bon format
if ( $etudiantCheck ){ // si tout les paramètres sont bons
$answer -> request = DataBase :: getInstance () -> saisieNote ( $request -> etudiant , $request -> controle , $request -> note );
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-15 12:02:34 +00:00
/****************************************************/
/* saisie d'une note pour un étudiant à un contrôle */
/****************************************************/
case 'saisieNote' : if ( permission ( 'teacher' ) ){
2015-11-15 14:12:26 +00:00
$areSetParam = isset ( $request -> etudiant ) && isset ( $request -> controle ) && isset ( $request -> note ); // les arguments existent
$typeOkParam = $areSetParam && is_string ( $request -> etudiant ); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen ( $request -> etudiant ) > 0 && is_numeric ( $request -> controle ) && is_numeric ( $request -> note ); // des bon types
$etudiantCheck = $nEmptyParam && preg_match ( '/^[\w -]{3,50}$/i' , $request -> etudiant ); // nom bon format
2015-11-14 17:33:06 +00:00
2015-11-15 14:12:26 +00:00
if ( $etudiantCheck ){ // si tout les paramètres sont bons
$answer -> request = DataBase :: getInstance () -> saisieNote ( $request -> etudiant , $request -> controle , $request -> note );
2015-11-14 17:33:06 +00:00
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-13 18:07:36 +00:00
2015-10-29 23:01:35 +00:00
2015-11-15 17:12:49 +00:00
/* _ ____ ___ _____ _____ _ _ ____ _____ ____
/* / \ | _ \_ _ | ___ | ___ | | | / ___ || ____ | _ \
/* / _ \ | | | | || | _ | | _ | | | \___ \ | _ | | | _ ) |
/* / ___ \ | | _ | | || _ | | _ | | | _ | | ___ ) | | ___ | _ <
/* / _ / \_\ | ____ / ___ | _ | | _ | \___ /| ____ /| _____ | _ | \_\
/*
/****************************************************/
/* saisie d'une note pour un groupe à un contrôle */
/****************************************************/
2015-11-22 15:34:07 +00:00
case 'saisieNoteMultiple' : if ( permission ( 'teacher' ) ){
2015-11-15 17:12:49 +00:00
2015-11-22 16:23:01 +00:00
$areSetParam = isset ( $request -> notes ) && isset ( $request -> controle ); // les arguments existent
$typeOkParam = $areSetParam && is_array ( $request -> notes ) && is_numeric ( $request -> controle ); // si c'est des strings
2015-11-22 15:34:07 +00:00
$nEmptyParam = $typeOkParam && count ( $request -> notes ) > 1 ; // des bon types
2015-11-15 17:12:49 +00:00
2015-11-22 15:34:07 +00:00
if ( $nEmptyParam ){ // si tout les paramètres sont bons
2015-11-22 16:23:01 +00:00
$answer -> request = DataBase :: getInstance () -> saisieNoteMultiple ( $request -> controle , $request -> notes );
2015-11-15 17:12:49 +00:00
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-21 17:09:03 +00:00
/**********************/
/* intégration du MCC */
/**********************/
case 'setMCC' : if ( permission ( 'admin' ) ){
if ( isset ( $request -> mcc ) && isset ( $request -> semestre ) && is_numeric ( $request -> semestre ) ){ // si tout les paramètres sont bons
DataBase :: getInstance () -> setMCC ( $request -> semestre , $request -> mcc );
$answer -> request = 'success' ;
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-22 14:00:18 +00:00
/**************************/
/* création d'un semestre */
/**************************/
/*
* CRÉATION DU SEMESTRE D ' UNE FORMATION DONNÉE
* - si code formation non référencé => on créé la formation
* - si rang + annee + formation du semestre non référencé => on créé le semestre
* + sinon on modifie juste le nom ( même si identique )
*
*/
case 'creerSemestre' : if ( permission ( 'admin' ) ){
$areSetParam = isset ( $request -> annee ) && isset ( $request -> formation ) && isset ( $request -> nom_formation ) && isset ( $request -> semestre ) && isset ( $request -> rang ); // les arguments existent
$typeOkParam = $areSetParam && is_string ( $request -> formation ) && is_string ( $request -> nom_formation ) && is_string ( $request -> semestre ); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen ( $request -> formation ) > 0 && strlen ( $request -> nom_formation ) > 0 && strlen ( $request -> semestre ) > 0 && is_numeric ( $request -> annee ) && is_numeric ( $request -> rang ); // des bon types
$anneeCheck = $nEmptyParam && preg_match ( '/[0-4]/i' , $request -> annee ); // l'année est au bon format
$formationCheck = $anneeCheck && preg_match ( '/[\w]{0,10}/i' , $request -> formation ); // le code de la formation est au bon format
$nomFormationCheck = $formationCheck && preg_match ( '/[\w ]{0,100}/i' , $request -> nom_formation ); // le nom de la formation est au bon format
$semestreCheck = $nomFormationCheck && preg_match ( '/[\w -]{0,10}/i' , $request -> semestre ); // le nom du semestre est au bon format
$rangCheck = $semestreCheck && preg_match ( '/\d/i' , $request -> rang ); // l'année est au bon format
if ( $rangCheck ){ // si tout les paramètres sont bons
$creationOk = DataBase :: getInstance () -> creerSemestre ( $request -> formation , $request -> nom_formation , $request -> semestre , $request -> rang , $request -> annee );
if ( $creationOk )
$answer -> request = 'success' ;
else
$answer -> request = 'error' ;
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-10-29 23:01:35 +00:00
/***********/
/* DEFAULT */
/***********/
default :
$answer -> request = 'unknown_level_1' ;
break ;
}
}
?>