Premier puch de la branche ced
This commit is contained in:
parent
2e6e2f1ef1
commit
6452d91b83
|
@ -26,7 +26,14 @@
|
|||
padding: 0;
|
||||
}
|
||||
|
||||
a{ text-decoration: none; color: inherit; }
|
||||
/***************************
|
||||
** LIEN DE TELECHARGEMENT **
|
||||
****************************/
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* on initialise le body avec les valeurs par défaut [compatibilité] */
|
||||
body{
|
||||
|
|
|
@ -168,9 +168,20 @@ require_once __ROOT__.'/manager/database.php';
|
|||
$anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||
$enseignantCheck = $anneeCheck && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // enseignant (annee) bon format
|
||||
|
||||
// paramètres optionnels
|
||||
$optionalSemestre = isset($request->semestre) && is_string($request->semestre) && preg_match('/^S[0-9]{1}$/i', $request->semestre);
|
||||
$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) des paramètres optionnels
|
||||
if( $optionalSemestre ) $semestre = $request->semestre;
|
||||
else $semestre = null;
|
||||
|
||||
if( $optionalGroupe ) $groupe = $request->groupe;
|
||||
else $groupe = null;
|
||||
|
||||
if( $enseignantCheck ){
|
||||
|
||||
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $_SESSION['semestre_pair'], $request->enseignant);
|
||||
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $_SESSION['semestre_pair'], $request->enseignant, $semestre, $groupe);
|
||||
|
||||
if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs
|
||||
$answer->grouplist = $grouplist;
|
||||
|
@ -194,10 +205,24 @@ require_once __ROOT__.'/manager/database.php';
|
|||
$typeOkParam = $areSetParam && is_numeric($request->annee); // si c'est des strings
|
||||
$anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||
|
||||
|
||||
// paramètres optionnels
|
||||
$optionalSemestre = isset($request->semestre) && is_string($request->semestre) && preg_match('/^S[0-9]{1}$/i', $request->semestre);
|
||||
$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) des paramètres optionnels
|
||||
if( $optionalSemestre ) $semestre = $request->semestre;
|
||||
else $semestre = null;
|
||||
|
||||
if( $optionalGroupe ) $groupe = $request->groupe;
|
||||
else $groupe = null;
|
||||
|
||||
|
||||
|
||||
if( $anneeCheck ){
|
||||
|
||||
// $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair']);
|
||||
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null);
|
||||
// $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair'], $semestre, $groupe);
|
||||
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null, $semestre, $groupe);
|
||||
|
||||
if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs
|
||||
$answer->grouplist = $grouplist;
|
||||
|
@ -242,14 +267,14 @@ require_once __ROOT__.'/manager/database.php';
|
|||
/************************************************/
|
||||
case 'move': if( permission('admin') ){
|
||||
|
||||
$areSetParam = isset($request->etudiant) && isset($request->groupe) && isset($request->semestre); // les arguments existent
|
||||
$areSetParam = isset($request->etudiant) && isset($request->groupe); // les arguments existent
|
||||
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->groupe); // si c'est des strings
|
||||
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && strlen($request->groupe) > 0 && is_numeric($request->semestre); // d'au moins 1 caractère
|
||||
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && strlen($request->groupe) > 0; // d'au moins 1 caractère
|
||||
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format
|
||||
$groupeCheck = $etudiantCheck && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format
|
||||
|
||||
if( $groupeCheck ){ // si param ok
|
||||
$answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $request->semestre);
|
||||
$answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $_SESSION['annee']);
|
||||
}else
|
||||
$answer->request = 'param_error';
|
||||
|
||||
|
|
132
manager/xlsx.php
132
manager/xlsx.php
|
@ -12,58 +12,120 @@ function xlsx_switch_lvl1($request, $answer){
|
|||
|
||||
//EXPORTATION DES LISTE D'ELEVE DE L'ANNEEE EN FORMAT EXCEL
|
||||
case 'export_userlist_group':
|
||||
|
||||
//On crée une instance du fichier xls, ainsi que de la feuille active
|
||||
$workbook = new PHPExcel();
|
||||
$sheet = $workbook->getActiveSheet();
|
||||
$writer = new PHPExcel_Writer_Excel2007($workbook);
|
||||
|
||||
//on prépare le tableau
|
||||
$sheet->setCellValue('A1', 'IAE Etape');
|
||||
$sheet->setCellValue('B1', 'Nom');
|
||||
$sheet->setCellValue('C1', 'Prénom');
|
||||
$sheet->setCellValue('D1', 'Identifiant');
|
||||
$sheet->setCellValue('E1', 'Sexe');
|
||||
$sheet->setCellValue('F1', 'Mail étudiant');
|
||||
//Si on a bien les listes de groupes
|
||||
if(isset($request->grouplist) && $request->grouplist != null){
|
||||
|
||||
//On crée une instance du fichier xls, ainsi que de la feuille active
|
||||
$workbook = new PHPExcel();
|
||||
$sheet = $workbook->getActiveSheet();
|
||||
$writer = new PHPExcel_Writer_Excel2007($workbook);
|
||||
|
||||
//on récupère l'ensemble des étudiants
|
||||
$req = new stdClass();
|
||||
$ans = new stdClass();
|
||||
//on défini les paramètresdu document
|
||||
$workbook->getProperties()->setCreator($_SESSION['identifiant']);
|
||||
$workbook->getProperties()->setLastModifiedBy('ACGA');
|
||||
$workbook->getProperties()->setTitle('Liste étudiants '.$_SESSION['annee']);
|
||||
|
||||
$req->level_1 = 'grouplistForYear';
|
||||
$req->annee = $_SESSION['annee'];
|
||||
groups_switch_level_1($req, $ans);
|
||||
//On définit les
|
||||
$sheet->getColumnDimension('B')->setWidth(20);
|
||||
$sheet->getColumnDimension('C')->setWidth(20);
|
||||
$sheet->getColumnDimension('D')->setWidth(15);
|
||||
$sheet->getColumnDimension('E')->setWidth(8);
|
||||
$sheet->getColumnDimension('F')->setWidth(35);
|
||||
$sheet->getColumnDimension('G')->setWidth(12);
|
||||
$sheet->getColumnDimension('H')->setWidth(12);
|
||||
|
||||
//Si l'execution s'est proprement effectuée
|
||||
$index = 2;
|
||||
if($ans->req == 'success') {
|
||||
foreach ($ans->grouplist as $group) {
|
||||
//on prépare le tableau
|
||||
$sheet->setCellValue('B1', "GROUPE DES ETUDIANTS DE L'ANNEE ".$_SESSION['annee']);
|
||||
$sheet->setCellValue('A2', date("d/m/Y G:m"));
|
||||
$sheet->setCellValue('A4', 'Numéro');
|
||||
$sheet->setCellValue('B4', 'Nom');
|
||||
$sheet->setCellValue('C4', 'Prénom');
|
||||
$sheet->setCellValue('D4', 'Identifiant');
|
||||
$sheet->setCellValue('E4', 'Sexe');
|
||||
$sheet->setCellValue('F4', 'Mail étudiant');
|
||||
$sheet->setCellValue('G4', 'Code IAE');
|
||||
$sheet->setCellValue('H4', 'IAE Etape');
|
||||
|
||||
//On remplie le tableau des valeurs récupérée dans la requ^te
|
||||
$index = 5;
|
||||
foreach ($request->grouplist as $group) {
|
||||
$groupeName = $group['nom'];
|
||||
foreach ($group->userlist as $student) {
|
||||
$sheet->setCellValue('A'.$index, $groupeName);
|
||||
$formation = $group['formation'];
|
||||
foreach ($group['userlist'] as $student) {
|
||||
$sheet->setCellValue('A'.$index, $index-4);
|
||||
$sheet->setCellValue('B'.$index, $student['nom']);
|
||||
$sheet->setCellValue('C'.$index, $student['prenom']);
|
||||
$sheet->setCellValue('D'.$index, $student['identifiant']);
|
||||
//$sheet->setCellValue('E'.$index, $student['sexe']);
|
||||
$sheet->setCellValue('F'.$index, $student['mail']);
|
||||
$sheet->setCellValue('G'.$index, $formation);
|
||||
$sheet->setCellValue('H'.$index, $groupeName);
|
||||
$index++;
|
||||
}
|
||||
}
|
||||
|
||||
//On enregistre ce nouveau fichier, et on lance son téléchargement
|
||||
$docPath = DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("page", "excelTemplates",
|
||||
"Liste Etudiant ".$_SESSION['annee'].".xlsx"));
|
||||
if(file_exists (__ROOT__.$docPath)){
|
||||
$index = 1;
|
||||
$titleLen = strlen($docPath) - 5;
|
||||
while(file_exists (__ROOT__.$docPath)){
|
||||
$docPath = mb_strimwidth($docPath, 0, $titleLen, "")." (".$index.").xlsx";
|
||||
$index++;
|
||||
}
|
||||
}
|
||||
$writer->save(__ROOT__.$docPath);
|
||||
$answer->docPath = $docPath;
|
||||
}
|
||||
|
||||
//On lance le téléchargement du fichier
|
||||
header('Content-type: application/vnd.ms-excel');
|
||||
header('Content-Disposition: attachment; filename="file.xls"');
|
||||
$writer->save('php://output');
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
# code...
|
||||
break;
|
||||
}
|
||||
//Si on a pas le tableau
|
||||
else {
|
||||
$answer->request = 'param_error';
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
// IMPORTATION DES LISTE D'ELEVE DE L'ANNEEE EN FORMAT EXCEL
|
||||
case 'import_userlist_group':
|
||||
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
// EXPORTATION DE NOTES POUR UN CONTROLE DONNEE, UNE FORMATION DONNEE ET UN GROUPE DONNE
|
||||
case 'export_notes':
|
||||
|
||||
//vérificationd es paramètres en entrée
|
||||
if(isset($request->formation) && isset($request->groupe) && isset($request->controle)){
|
||||
|
||||
}
|
||||
|
||||
//Si il y a un problème dans les paramètres
|
||||
else {
|
||||
$answer->request='param_error';
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
// IMPORTATION DE NOTES POUR UN CONTROLE DONNEE, UNE FORMATION DONNEE ET UN GROUPE DONNE
|
||||
case 'import_notes':
|
||||
//code
|
||||
break;
|
||||
|
||||
|
||||
|
||||
// DEFAULT
|
||||
default:
|
||||
$answer->request = 'unknown_level_1';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -201,7 +201,7 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un
|
|||
* PROFESSEUR -> les groupes inscrits aux modules qu'il enseigne
|
||||
*
|
||||
*/
|
||||
if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un élève
|
||||
if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un enseignant
|
||||
|
||||
$request = new stdClass(); $answer = new stdClass();
|
||||
|
||||
|
@ -527,35 +527,63 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
|
|||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- IMPORTATION ET EXPORTATION FICHIER EXCEL -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
/*********************************/
|
||||
/*** IMPORTATION FICHIER EXCEL ***/
|
||||
/*********************************/
|
||||
if( permission('admin') ){
|
||||
debug();
|
||||
|
||||
require_once __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("manager", "xlsx.php"));
|
||||
|
||||
echo "<section name='importexcel' title='Importation/Export' class='basic'></section>";
|
||||
echo "<section name='importexcel' data-title='Importation/Export' class='basic'>";
|
||||
|
||||
$answer = new stdClass();
|
||||
$request = new stdClass();
|
||||
//affichage sur la page
|
||||
|
||||
echo "<p>Vous pouvez ici exporter et importer les listes des étudiants de l'année en cours";
|
||||
|
||||
$request->level_1 = 'export_userlist_group';
|
||||
//on récupère l'ensemble des étudiants
|
||||
$req = new stdClass();
|
||||
$ans = new stdClass();
|
||||
|
||||
xlsx_switch_lvl1($request, $answer);
|
||||
$req->level_1 = 'grouplistForYear';
|
||||
$req->annee = $_SESSION['annee'];
|
||||
groups_switch_level_1($req, $ans);
|
||||
|
||||
|
||||
//on envoie les résultats
|
||||
if($ans->request = 'success'){
|
||||
$listeGroupes = $ans->grouplist;
|
||||
$req = new stdClass();
|
||||
$ans = new stdClass();
|
||||
$req->level_1 = 'export_userlist_group';
|
||||
$req->grouplist = $listeGroupes;
|
||||
xlsx_switch_lvl1($req, $ans);
|
||||
}
|
||||
|
||||
if ($ans->request = 'success') {
|
||||
//Lien vers le fichier correspondant
|
||||
$ans->docPath = mb_strimwidth($ans->docPath, 1, strlen($ans->docPath));
|
||||
echo "<br><a href='".$ans->docPath."'>Fichier excel de liste des étudiatns de l'année</a></p>";
|
||||
}
|
||||
|
||||
|
||||
//Importation des listes d'élèves
|
||||
/*echo "<form id='importXLSX' action='' method='POST'>";
|
||||
echo "<input type='file' name='importXLSX'>";
|
||||
echo "<input type='submit' value='Envoyer' name='import'>";
|
||||
echo "</form>";*/
|
||||
|
||||
|
||||
|
||||
if(false){
|
||||
|
||||
}
|
||||
|
||||
echo "</section>";
|
||||
}
|
||||
?>
|
Loading…
Reference in New Issue