sid/page/modules.php

686 lines
22 KiB
PHP
Executable File

<?php define('__ROOT__', dirname(dirname(__FILE__)) );
require_once __ROOT__.'/manager/security.php';
require_once __ROOT__.'/manager/groups.php';
require_once __ROOT__.'/manager/modules.php';
/*** GESTION DES PARAMETRES OPTIONNELS ***/
// on initialise les paramètres optionnels
$ueOpt = null;
$semestreOpt = null;
$formationOpt = null;
$anneeOpt = null;
// on cherche dans toutes les variables _get si on trouve des paramètres
foreach($_POST as $k=>$v){
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
$semestreOpt = $m[1];
if( preg_match('/^u:(.+)$/', $k, $m) ) // u:nomUE
$ueOpt = $m[1];
if( preg_match('/^f:(.+)$/', $k, $m) ) // f:codeFormation
$formationOpt = $m[1];
if( preg_match('/^a:(.+)$/', $k, $m) ) // a:annee
$anneeOpt = $m[1];
}
$ueOpt = ($ueOpt == null || $ueOpt == '*') ? null : $ueOpt;
$semestreOpt = ($semestreOpt == null || $semestreOpt == '*') ? null : $semestreOpt;
$formationOpt = ($formationOpt == null || $formationOpt == '*') ? null : $formationOpt;
$anneeOpt = ($anneeOpt == null || $anneeOpt == '*') ? null : $anneeOpt;
/****************************************
* *
* SECTION "MODULES" *
* *
*****************************************
*
* [1] MES MODULES (studend + prof)
* [2] MES MODULES (prof)
*
*****************************************/
?>
<!-- mes modules -->
<?php
/**************************************/
/*** MES MODULES (version étudiant) ***/
/**************************************/
if( permission('student') ){ // si l'utilisateur est connecté et que c'est un élève
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'getByEtudiant';
$request->etudiant = $_SESSION['identifiant'];
$request->semestre = $_SESSION['semestre'];
$request->annee = $_SESSION['annee'];
modules_switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe
////////////////////////////////////////////////////////////////////////////////
echo "<section name='studentsmodules' data-title='Mes modules' class='basic'>";
echo "<table class='partlist' name='UE'><tbody><tr>";
if( $ueOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
else echo "<td data-value='*'>Tous</td>";
foreach($answer->UEs as $UE)
if( $UE['nom'] == $ueOpt ) // si c'est le semestre séléctionné
echo "<td data-value='".$UE['nom']."' class='active'>".$UE['nom'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$UE['nom']."'>".$UE['nom'].'</td>';
echo "</tr></tbody></table>";
foreach($answer->UEs as $UE){
if( $ueOpt == null || $UE['nom'] == $ueOpt ){
echo "<table class='basic'>";
echo "<thead class='normal'>";
echo '<tr>';
echo '<th colspan=5><strong>'.$UE['semestre'].'</strong> - '.$UE['nom'].' - '.$UE['libelle'].'</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
foreach($UE['modules'] as $MODULE){
echo '<tr>';
echo '<td>'.$MODULE['nom'].'</td>';
echo '<td>'.$MODULE['libelle'].'</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
}
}
////////////////////////////////////////////////////////////////////////////////
echo '</section>';
}else
echo "<section name='studentsmodules' data-title='Mes modules' class='basic'><table class=basic><tbody><tr><td>Aucun module trouvé</td></tr></tbody></table></section>";
} ?>
<!-- mes modules -->
<?php
/****************************************/
/*** MES MODULES (version enseignant) ***/
/****************************************/
if( permission('teacher') ){ // si l'utilisateur est un prof
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'getByEnseignant';
$request->enseignant = $_SESSION['identifiant'];
$request->annee = $_SESSION['annee'];
modules_switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe
////////////////////////////////////////////////////////////////////////////////
echo "<section name='teachersmodules' data-title='Mes modules' class='basic'>";
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
$ListeUIDFormations = array();
$ListeUIDSemestres = array();
$ListeUIDUE = array();
// Vérification de la formation si elle est définie
$verificationUIDFormations = array();
foreach($answer->semestres as $semestre) // on récupère la liste des UID de FORMATIONS
if( !in_array($semestre['id_formation'], $verificationUIDFormations) )
array_push($verificationUIDFormations, $semestre['id_formation']);
// si la formation optionnelle n'est pas définie ou incohérente, on le fait (première valeur trouvée)
if( $formationOpt == null || !in_array($formationOpt, $verificationUIDFormations) )
$formationOpt = $verificationUIDFormations[0];
/**************************/
/* AFFINAGE PAR FORMATION */
/**************************/
echo "<table class='partlist' name='formation'><tbody><tr>";
foreach($answer->semestres as $semestre){ if( !in_array($semestre['id_formation'], $ListeUIDFormations) ){
if( $semestre['id_formation'] == $formationOpt ) // si c'est la formation séléctionnée
echo "<td data-value='".$semestre['id_formation']."' class='active'>".$semestre['formation'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$semestre['id_formation']."'>".$semestre['formation'].'</td>';
// on ajoute la formation à la liste pour ne pas la répéter
array_push($ListeUIDFormations, $semestre['id_formation']);
}}
echo "</tr></tbody></table>";
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
echo "<table class='partlist' name='semestre'><tbody><tr>";
if( $semestreOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
else echo "<td data-value='*'>Tous</td>";
/* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */
foreach($answer->semestres as $semestre){ if( $semestre['id_formation'] == $formationOpt && !in_array($semestre['id'], $ListeUIDSemestres) ){
if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné
echo "<td data-value='".$semestre['id']."' class='active'>".$semestre['nom'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$semestre['id']."'>".$semestre['nom'].'</td>';
// on ajoute le semestre à la liste pour ne pas le répéter
array_push($ListeUIDSemestres, $semestre['id']);
}}
echo "</tr></tbody></table>";
/*******************/
/* AFFINAGE PAR UE */
/*******************/
echo "<table class='partlist' name='UE'><tbody><tr>";
if( $ueOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
else echo "<td data-value='*'>Tous</td>";
/* On récupère la liste des UEs en accord avec la FORMATION et le SEMESTRE sélectionnés */
foreach($answer->semestres as $semestre){ if( $semestre['id_formation'] == $formationOpt && in_array($semestre['id'], $ListeUIDSemestres) ){
foreach($semestre['UElist'] as $UE){ if( !in_array($UE['id'], $ListeUIDUE) ){
if( $UE['id'] == $ueOpt ) // si c'est l'UE séléctionnée
echo "<td data-value='".$UE['id']."' class='active'>".$UE['nom'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$UE['id']."'>".$UE['nom'].'</td>';
// on ajoute l'UE à la liste pour ne pas le répéter
array_push($ListeUIDUE, $UE['id']);
}}
}}
echo "</tr></tbody></table>";
foreach($answer->semestres as $semestre){
if( ($semestreOpt == null || $semestre['id'] == $semestreOpt) && ($formationOpt == null || $semestre['id_formation'] == $formationOpt) ){ // on affiche les semestres en fonction de l'affinage
foreach($semestre['UElist'] as $UE){
if( $ueOpt == null || $UE['id'] == $ueOpt ){ // on affiche les UEs en fonction de l'affinage
echo "<table class='basic'>";
echo "<thead>";
echo '<tr>';
echo '<th colspan=5>'.$semestre['nom_formation'].' - '.$semestre['nom'].'</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
foreach($UE['modules'] as $MODULE){
echo '<tr>';
echo '<td>'.$MODULE['nom'].'</td>';
echo '<td>'.$MODULE['libelle'].'</td>';
echo '<td>'.$UE['nom'].' - '.$UE['libelle'].'</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
}
}
}
}
////////////////////////////////////////////////////////////////////////////////
echo '</section>';
}else
echo "<section name='teachersmodules' data-title='Mes modules' class='basic'><table class=basic><tbody><tr><td>Aucun module trouvé</td></tr></tbody></table></section>";
} ?>
<!-- tous les modules -->
<?php
/****************************************/
/*** TOUT LES MODULES (version admin) ***/
/****************************************/
if( permission('admin') ){ // si l'utilisateur est un admin
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'getByYear';
$request->annee = $_SESSION['annee'];
modules_switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe
////////////////////////////////////////////////////////////////////////////////
echo "<section name='allmodules' data-title='Tous les modules' class='basic'>";
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
$ListeUIDFormations = array();
$ListeUIDSemestres = array();
$ListeUIDUE = array();
// Vérification de la formation si elle est définie
$verificationUIDFormations = array();
foreach($answer->semestres as $semestre) // on récupère la liste des UID de FORMATIONS
if( !in_array($semestre['id_formation'], $verificationUIDFormations) )
array_push($verificationUIDFormations, $semestre['id_formation']);
// si la formation optionnelle n'est pas définie ou incohérente, on le fait (première valeur trouvée)
if( $formationOpt == null || !in_array($formationOpt, $verificationUIDFormations) )
$formationOpt = $verificationUIDFormations[0];
/**************************/
/* AFFINAGE PAR FORMATION */
/**************************/
echo "<table class='partlist' name='formation'><tbody><tr>";
foreach($answer->semestres as $semestre){ if( !in_array($semestre['id_formation'], $ListeUIDFormations) ){
if( $semestre['id_formation'] == $formationOpt ) // si c'est la formation séléctionnée
echo "<td data-value='".$semestre['id_formation']."' class='active'>".$semestre['formation'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$semestre['id_formation']."'>".$semestre['formation'].'</td>';
// on ajoute la formation à la liste pour ne pas la répéter
array_push($ListeUIDFormations, $semestre['id_formation']);
}}
echo "</tr></tbody></table>";
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
echo "<table class='partlist' name='semestre'><tbody><tr>";
if( $semestreOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
else echo "<td data-value='*'>Tous</td>";
/* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */
foreach($answer->semestres as $semestre){ if( $semestre['id_formation'] == $formationOpt && !in_array($semestre['id'], $ListeUIDSemestres) ){
if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné
echo "<td data-value='".$semestre['id']."' class='active'>".$semestre['nom'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$semestre['id']."'>".$semestre['nom'].'</td>';
// on ajoute le semestre à la liste pour ne pas le répéter
array_push($ListeUIDSemestres, $semestre['id']);
}}
echo "<td data-value='+'>+</td>"; // ajouter un semestre
echo "</tr></tbody></table>";
/*******************/
/* AFFINAGE PAR UE */
/*******************/
echo "<table class='partlist' name='UE'><tbody><tr>";
if( $ueOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
else echo "<td data-value='*'>Tous</td>";
/* On récupère la liste des UEs en accord avec la FORMATION et le SEMESTRE sélectionnés */
foreach($answer->semestres as $semestre){ if( $semestre['id_formation'] == $formationOpt && in_array($semestre['id'], $ListeUIDSemestres) ){
foreach($semestre['UElist'] as $UE){ if( !in_array($UE['id'], $ListeUIDUE) ){
if( $UE['id'] == $ueOpt ) // si c'est l'UE séléctionnée
echo "<td data-value='".$UE['id']."' class='active'>".$UE['nom'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$UE['id']."'>".$UE['nom'].'</td>';
// on ajoute l'UE à la liste pour ne pas le répéter
array_push($ListeUIDUE, $UE['id']);
}}
}}
echo "<td data-value='+'>+</td>"; // ajouter un UE
echo "</tr></tbody></table>";
foreach($answer->semestres as $semestre){
if( ($semestreOpt == null || $semestre['id'] == $semestreOpt) && ($formationOpt == null || $semestre['id_formation'] == $formationOpt) ){ // on affiche les semestres en fonction de l'affinage
foreach($semestre['UElist'] as $UE){
if( $ueOpt == null || $UE['id'] == $ueOpt ){ // on affiche les UEs en fonction de l'affinage
echo "<table class='basic'>";
echo "<thead>";
echo '<tr>';
echo '<th colspan=5>'.$semestre['nom_formation'].' - '.$semestre['nom'].'</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
foreach($UE['modules'] as $MODULE){
echo '<tr>';
echo '<td>'.$MODULE['nom'].'</td>';
echo '<td>'.$MODULE['libelle'].'</td>';
echo '<td>'.$UE['nom'].' - '.$UE['libelle'].'</td>';
echo '</tr>';
}
require_once __ROOT__.'/manager/database.php';
debug();
$completeModuleList = DataBase::getInstance()->getExhaustiveModuleList();
// saisie d'un nouveau module
echo "<tr class='grayscale'><td>";
echo "<select name='modules'>";
foreach($completeModuleList as $module)
echo "<option value='".$module['id']."'>".$module['nom']." - ".$module['libelle']."</option>";
echo "</select>";
echo "</td><td>";
echo "<input style='min-width:20%;' type='text' placeholder='Nom'>";
echo "<input style='min-width:50%;' type='text' placeholder='Libellé'>";
echo "</td><td>";
echo "<div class='confirm active'>Ajouter le module</div>";
echo "</td></tr>";
echo '</tbody>';
echo '</table>';
}
}
}
}
////////////////////////////////////////////////////////////////////////////////
echo '</section>';
}else
echo "<section name='allmodules' data-title='Tous les modules' class='basic'><table class='basic'><tbody><tr><td>Aucun module trouvé</td></tr></tbody></table></section>";
}
if( permission('admin') ){
function anneeScolaire($year){ return $year.' - '.($year+1); }
// require_once __ROOT__.'/manager/phpExcel.php';
// require_once __ROOT__.'/manager/database.php';
// $request = new stdClass(); $answer = new stdClass();
// $request->level_1 = 'import_mcc';
// $request->docPath = __ROOT__.'/src/excelTemplates/mcc.xlsx';
// $request->docPath = __ROOT__.'/src/nouveau_modele.xlsx';
// xlsx_switch_lvl1($request, $answer);
// var_dump( DataBase::getInstance()->setMCC($semestre, $answer->mcc) );
echo "<section name='importmcc' data-title='import / export'>";
/* [1] Exportation
==========================================*/
// si annéeOpt n'est pas définie, on le fait
if( $anneeOpt == null ) $anneeOpt = $_SESSION['annee'];
/* ON RÉCUPÈRE LA LISTE DES SEMESTRES EN FONCTION DE L'ANNEE */
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'getSemestres';
groups_switch_level_1($request, $answer); // on fait la requête pour les groupes en fonction des filtres si définis
if( $answer->request == 'success' ){ // si pas d'erreur
echo "<div class='p center'>";
$anneesListe = array();
$semestresListe = array();
/**********************/
/* AFFINAGE PAR ANNEE */
/**********************/
echo "Exportation des MCC d'un semestre<br>";
echo "<span style='font-size:.8em;'>(Format compatible Microsoft Office, Open Office et Libre Office)</span><br>";
/* AFFINAGE POUR LES 5 ANNEES SUIVANTES */
echo "<select name='annee'>";
foreach($answer->yearList as $annee){ if( !in_array($annee['annee'], $anneesListe) ){ // pour éviter les doublons
if( $anneeOpt == $annee['annee'] ) // on préselectionne l'année selectionnée
echo "<option value='".$annee['annee']."' selected>".anneeScolaire($annee['annee'])."</option>";
else
echo "<option value='".$annee['annee']."'>".anneeScolaire($annee['annee'])."</option>";
array_push($anneesListe, $annee['annee']);
}}
echo "</select><br><br>";
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
foreach($answer->yearList as $annee){ if( $anneeOpt == $annee['annee'] ){ // on récupère la liste des ids
foreach($annee['semestres'] as $semestre){ if( !in_array($semestre['id'], $semestresListe) ){
array_push($semestresListe, $semestre['id']);
}}
}}
// si semestreOpt n'est pas cohérent (pas pour cette année)
if( !in_array($semestreOpt, $semestresListe) ) $semestreOpt = null;
echo "<div class='partlist' name='semestre'>";
if( $semestreOpt == null ) echo "<span data-stre='*' class='active'>Tous</span>";
else echo "<span data-stre='*'>Tous</span>";
/* On récupère la liste des SEMESTRES en accord avec l'ANNEE sélectionnée */
foreach($answer->yearList as $annee){ if( $anneeOpt == $annee['annee'] ){
foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){
if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné
echo "<span data-year='".$annee['annee']."' data-stre='".$semestre['id']."' class='active'>".$semestre['formation']." - ".$semestre['nom'].'</span>';
else // sinon on affiche normalement
echo "<span data-year='".$annee['annee']."' data-stre='".$semestre['id']."'>".$semestre['formation']." - ".$semestre['nom'].'</span>';
}}
}}
echo "</div><br><br>";
// si on a selectionné un semestre
if( $semestreOpt != null )
foreach($answer->yearList as $annee){ if( $anneeOpt == $annee['annee'] ){ foreach($annee['semestres'] as $semestre){ if( $semestreOpt == $semestre['id'] ){
echo "<span class='unstressed'>".$semestre['nb_etudiants']." étudiants</span><br><br>";
}}}}
else{ // si on a selectionné "Tous"
$nbTotal = 0;
foreach($answer->yearList as $annee){ if( $anneeOpt == $annee['annee'] ){ foreach($annee['semestres'] as $semestre){
$nbTotal += $semestre['nb_etudiants'];
}}}
echo "<span class='unstressed'>".$nbTotal." étudiants</span><br><br>";
}
echo "<div data-year='".$anneeOpt."' data-stre='".$semestreOpt."' class='confirm active center'>Générer le fichier</div>";
echo "<div data-year='".$anneeOpt."' data-stre='".$semestreOpt."' class='confirm active center'>Télécharger le fichier</div>";
echo "</div>";
}else
echo "<p>Erreur interne</p>";
/* [2] Importation
==========================================*/
// si annéeOpt n'est pas définie, on le fait
if( $anneeOpt == null || $anneeOpt < $_SESSION['annee'] ) $anneeOpt = $_SESSION['annee'];
/* ON RÉCUPÈRE LA LISTE DES SEMESTRES EN FONCTION DE L'ANNEE */
// $request = new stdClass(); $answer = new stdClass();
// $request->level_1 = 'getSemestres';
// groups_switch_level_1($request, $answer); // on fait la requête pour les groupes en fonction des filtres si définis
// if( $answer->request == 'success' ){ // si pas d'erreur
echo "<div class='p center'>";
$anneesListe = array();
/**********************/
/* AFFINAGE PAR ANNEE */
/**********************/
echo "Importation des MCC d'un semestre<br>";
echo "<span style='font-size:.8em;'>(Fichier .xlsx suivant le modèle : <a href='".__ROOT__."/src/import_mcc.xlsx'>modèle de fichier</a>)</span><br>";
/* AFFINAGE POUR LES 5 ANNEES SUIVANTES */
echo "<select name='annee'>";
for($i = 0 ; $i < 5 ; $i++){
if( $anneeOpt == $_SESSION['annee']+$i ) // on préselectionne l'année selectionnée
echo "<option value='".($annee['annee']+$i)."' selected>".anneeScolaire($annee['annee']+$i)."</option>";
else
echo "<option value='".($annee['annee']+$i)."'>".anneeScolaire($annee['annee']+$i)."</option>";
}
echo "</select><br>";
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
echo "<div class='partlist' name='semestre'>";
if( $semestreOpt == null ) echo "<span data-stre='*' class='active'>Tous</span>";
else echo "<span data-stre='*'>Tous</span>";
/* On récupère la liste des SEMESTRES en accord avec l'ANNEE sélectionnée */
foreach($answer->yearList as $annee){ if( $anneeOpt == $annee['annee'] ){
foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){
if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné
echo "<span data-year='".$annee['annee']."' data-stre='".$semestre['id']."' class='active'>".$semestre['formation']." - ".$semestre['nom'].'</span>';
else // sinon on affiche normalement
echo "<span data-year='".$annee['annee']."' data-stre='".$semestre['id']."'>".$semestre['formation']." - ".$semestre['nom'].'</span>';
}}
}}
echo "</div><br><br>";
echo "<div data-year='".$anneeOpt."' class='confirm active center'>Importer les MCC</div>";
echo "</div>";
// }else
// echo "<p>Erreur interne</p>";
echo "<section>";
}
?>