diff --git a/css/layout.css b/css/layout.css index 08649c6..3d97766 100755 --- a/css/layout.css +++ b/css/layout.css @@ -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{ diff --git a/manager/groups.php b/manager/groups.php index 7c252a5..5dce139 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -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'; diff --git a/manager/xlsx.php b/manager/xlsx.php index 5cff401..702ddf5 100644 --- a/manager/xlsx.php +++ b/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; + } } ?> \ No newline at end of file diff --git a/page/excelTemplates/Liste Etudiant 2015 (1).xlsx b/page/excelTemplates/Liste Etudiant 2015 (1).xlsx new file mode 100644 index 0000000..d046302 Binary files /dev/null and b/page/excelTemplates/Liste Etudiant 2015 (1).xlsx differ diff --git a/page/excelTemplates/Liste Etudiant 2015 (2).xlsx b/page/excelTemplates/Liste Etudiant 2015 (2).xlsx new file mode 100644 index 0000000..e35c9e0 Binary files /dev/null and b/page/excelTemplates/Liste Etudiant 2015 (2).xlsx differ diff --git a/page/excelTemplates/Liste Etudiant 2015.xlsx b/page/excelTemplates/Liste Etudiant 2015.xlsx new file mode 100644 index 0000000..d046302 Binary files /dev/null and b/page/excelTemplates/Liste Etudiant 2015.xlsx differ diff --git a/page/groups.php b/page/groups.php index b4ef194..6517f0e 100755 --- a/page/groups.php +++ b/page/groups.php @@ -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 } } +?> + - - - - - - - - - - - +"; + echo "
"; - $answer = new stdClass(); - $request = new stdClass(); + //affichage sur la page + + echo "

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 "
Fichier excel de liste des étudiatns de l'année

"; + } + + + //Importation des listes d'élèves + /*echo "
"; + echo ""; + echo ""; + echo "
";*/ + + + + if(false){ + + } + + echo "
"; } ?> \ No newline at end of file