Compare commits

...

6 Commits
master ... ced

Author SHA1 Message Date
Cedric 6452d91b83 Premier puch de la branche ced 2015-11-19 10:18:43 +01:00
Cedric 2e6e2f1ef1 yolo 2015-11-18 10:02:52 +01:00
Cedric 1d82880956 Récupération de la branche dev 2015-11-18 09:57:43 +01:00
Cedric a45904c751 ok 2015-11-18 09:48:36 +01:00
Cedric 5695586a90 ok 2015-11-17 17:35:08 +01:00
Cedric 16ed89119c premier commit de ma branche perso a moi (phpexcel) 2015-11-15 18:57:56 +01:00
8 changed files with 253 additions and 52 deletions

View File

@ -26,7 +26,14 @@
padding: 0; 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é] */ /* on initialise le body avec les valeurs par défaut [compatibilité] */
body{ body{

View File

@ -168,9 +168,20 @@ require_once __ROOT__.'/manager/database.php';
$anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format $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 $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 ){ 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 if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs
$answer->grouplist = $grouplist; $answer->grouplist = $grouplist;
@ -194,10 +205,24 @@ require_once __ROOT__.'/manager/database.php';
$typeOkParam = $areSetParam && is_numeric($request->annee); // si c'est des strings $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 $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 ){ if( $anneeCheck ){
// $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair']); // $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair'], $semestre, $groupe);
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null); $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null, $semestre, $groupe);
if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs
$answer->grouplist = $grouplist; $answer->grouplist = $grouplist;
@ -242,14 +267,14 @@ require_once __ROOT__.'/manager/database.php';
/************************************************/ /************************************************/
case 'move': if( permission('admin') ){ 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 $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 $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 $groupeCheck = $etudiantCheck && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format
if( $groupeCheck ){ // si param ok 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 }else
$answer->request = 'param_error'; $answer->request = 'param_error';

131
manager/xlsx.php Normal file
View File

@ -0,0 +1,131 @@
<?php
function xlsx_switch_lvl1($request, $answer){
//inclusion des classes de PHPExcel et des fichiers necessaires
require_once __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("src", "phpexcel", "Classes", "PHPExcel.php"));
require_once __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("src", "phpexcel", "Classes", "PHPExcel", "Writer", "Excel2007.php"));
//TABLE DE ROUTAGE DE LA FONCTION
switch ($request->level_1) {
//EXPORTATION DES LISTE D'ELEVE DE L'ANNEEE EN FORMAT EXCEL
case 'export_userlist_group':
//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 défini les paramètresdu document
$workbook->getProperties()->setCreator($_SESSION['identifiant']);
$workbook->getProperties()->setLastModifiedBy('ACGA');
$workbook->getProperties()->setTitle('Liste étudiants '.$_SESSION['annee']);
//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);
//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'];
$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;
}
//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.

View File

@ -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 * 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(); $request = new stdClass(); $answer = new stdClass();
@ -526,61 +526,64 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
echo "<section name='movestudents' data-title='Tous les groupes' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>"; echo "<section name='movestudents' data-title='Tous les groupes' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
} }
} ?> }
?>
<!-- IMPORTATION ET EXPORTATION FICHIER EXCEL -->
<?php <?php
/*********************************/ /*********************************/
/*** IMPORTATION FICHIER EXCEL ***/ /*** IMPORTATION FICHIER EXCEL ***/
/*********************************/ /*********************************/
// if( permission('admin') ){ if( permission('admin') ){
// echo "<section name='importexcel' data-title='Importation/Export' class='basic'>";
// //inclusion des classes de PHPExcel require_once __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("manager", "xlsx.php"));
// include __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("src", "phpexcel", "Classes", "PHPExcel.php"));
// include __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("src", "phpexcel", "Classes", "PHPExcel", "Writer", "Excel2007.php"));
// //On crée une instance du fichier xls, ainsi que de la feuille active echo "<section name='importexcel' data-title='Importation/Export' class='basic'>";
// $workbook = new PHPExcel();
// $sheet = $workbook->getActiveSheet();
// $writer = new PHPExcel_Writer_Excel2007($workbook);
// //on prépare le tableau //affichage sur la page
// $sheet->setCellValue('A1', 'IAE Etape');
// $sheet->setCellValue('B1', 'Nom'); echo "<p>Vous pouvez ici exporter et importer les listes des étudiants de l'année en cours";
// $sheet->setCellValue('C1', 'Prénom');
// $sheet->setCellValue('D1', 'Identifiant'); //on récupère l'ensemble des étudiants
// $sheet->setCellValue('E1', 'Sexe'); $req = new stdClass();
// $sheet->setCellValue('F1', 'Mail étudiant'); $ans = new stdClass();
$req->level_1 = 'grouplistForYear';
$req->annee = $_SESSION['annee'];
groups_switch_level_1($req, $ans);
// //on récupère l'ensemble des étudiants //on envoie les résultats
// $request = new stdClass(); if($ans->request = 'success'){
// $answer = new stdClass(); $listeGroupes = $ans->grouplist;
$req = new stdClass();
$ans = new stdClass();
$req->level_1 = 'export_userlist_group';
$req->grouplist = $listeGroupes;
xlsx_switch_lvl1($req, $ans);
}
// $request->level_1 = 'grouplistForYear'; if ($ans->request = 'success') {
// $request->annee = $_SESSION['annee']; //Lien vers le fichier correspondant
// groups_switch_level_1($request, $answer); $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>";
}
// //Si l'execution s'est proprement effectuée
// $index = 2;
// if($answer->request == 'success') {
// foreach ($answer->grouplist as $group) {
// $groupeName = $group['nom'];
// foreach ($group->userlist as $student) {
// $sheet->setCellValue('A'.$index, $groupeName);
// $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']);
// $index++;
// }
// }
// }
// //On enregistre le fichier //Importation des listes d'élèves
// $writer->save('test.xlsx'); /*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>";
}
?> ?>

35
xlsx.php Normal file
View File

@ -0,0 +1,35 @@
<?php
define('__ROOT__', dirname(__FILE__) );
require_once __ROOT__.'/manager/security.php';
?>
<!DOCTYPE html>
<html>
<head>
<title>Page de test sur PHP Excel</title>
<!-- Informations de la page -->
<meta charset='utf-8'>
<link type='text/css' rel='stylesheet' href='css/font.css' /> <!-- Gestion globale des Polices -->
<link type='text/css' rel='stylesheet' href='css/layout.css' /> <!-- Positionnement global des pages -->
<link type='text/css' rel='stylesheet' href='css/header.css' /> <!-- Gestion du header -->
<link type='text/css' rel='stylesheet' href='css/container.css'/> <!-- Gestion du container -->
<link type='text/css' rel='stylesheet' href='css/menu.css' /> <!-- Gestion du menu -->
<link type='text/css' rel='stylesheet' href='css/global.css' /> <!-- Style global -->
<!-- Dépendences Javascript -->
<script type='text/javascript' src='API.js' ></script>
<script type='text/javascript' src='js/pageManager.js' ></script>
</head>
<body>
<p>YOLO</p>
</body>
</html>