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ées 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': if(isset($request->docPath)) { // $inputFileType = 'Excel2007'; $inputFileName = $request->docPath; // Charger le fichier en tant que document Excel $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); // Get sur la première case $sheet = $objPHPExcel->getSheet(0); $mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); $listeEleves = array(); // Boucle sur le format suivant : ligne[0] : [NOM] / ligne[1] : [PRENOM] / ligne[0] : [GROUPE] for($mccData as $line) { $listeEleves[$i++] = array($line[0],$line[1],$line[2]); } if($i+1 == getHighestRow()) { $answer->listeEleves = $listeEleves; $answer->request = 'success'; } } else { $answer->request='param_error'; } 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': if(isset($request->docPath)) { // $inputFileType = 'Excel2007'; $inputFileName = $request->docPath; // Charger le fichier en tant que document Excel $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); // Get sur la première case $sheet = $objPHPExcel->getSheet(0); $mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); } else { $answer->request='param_error'; } break; case 'import_mcc': if(isset($request->docPath)) { // $inputFileType = 'Excel2007'; $inputFileName = $request->docPath; // Charger le fichier en tant que document Excel $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); // Get sur la première case $sheet = $objPHPExcel->getSheet(0); $mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); /* permet d'éviter les doublons */ $mcc = array(); // contiendra le tableau de retour $ueuid = array(); /****************************/ /* TRAITEMENT SUR LES CASES */ /****************************/ foreach($mccData as $line){ if( $line[0] != null ){ /* [1] On récupère les données de l'UE, si les champs sont définis =========================================================================*/ if( /*$line[0] != null && */ $line[1] != null && $line[2] != null ){ if( $line[0] != null && !in_array($line[0], $ueuid) ){ // on créé l'UE dans la liste s'il n'y est pas déjà array_push( // on ajoute l'UE $mcc, array( 'nom' => $line[0], 'libelle' => $line[1], 'coefficient' => $line[2], 'modules' => array(), 'moduid' => array() ) ); array_push($ueuid, $line[0]); // on dis qu'on a déjà enregistré l'ue } if( $line[0] != null ) $ueIndex = array_search($line[0], $ueuid); /* [2] On récupère les données du module, si les champs sont définis =========================================================================*/ if( /*$line[3] != null && */ $line[4] != null && $line[5] != null ){ if( $line[3] != null && !in_array($line[3], $mcc[$ueIndex]['moduid']) ){ // on créé le module dans la liste de cet UE s'il n'y est pas déjà array_push( // on ajoute l'UE $mcc[$ueIndex]['modules'], array( 'nom' => $line[3], 'libelle' => $line[4], 'coefficient' => $line[5], 'controles' => array(), 'ctrluid' => array() ) ); array_push($mcc[$ueIndex]['moduid'], $line[3]); // on dis qu'on a déjà enregistré le module } } if( $line[3] != null ) $modIndex = array_search($line[3], $mcc[$ueIndex]['moduid']); /* [3] On récupère les contrôles du module, si les champs sont définis =========================================================================*/ if( $line[6] != null && $line[7] != null && $line[8] != null ){ if( !in_array($line[6], $mcc[$ueIndex]['modules'][$modIndex]['ctrluid']) ){ // on créé le contrôle dans la liste de ce module s'il n'y est pas déjà array_push( // on ajoute l'UE $mcc[$ueIndex]['modules'][$modIndex]['controles'], array( 'nom' => $line[6], 'libelle' => $line[7], 'coefficient' => $line[8] ) ); array_push($mcc[$ueIndex]['modules'][$modIndex]['ctrluid'], $line[6]); // on dis qu'on a déjà enregistré le module } } } } } /* [4] Affinage des données, on supprime les données temporaires =========================================================================*/ foreach($mcc as $iter_ue=>$ue){ unset( $mcc[$iter_ue]['moduid'] ); foreach($mcc[$iter_ue]['modules'] as $iter_m=>$mod) unset( $mcc[$iter_ue]['modules'][$iter_m]['ctrluid'] ); } $answer->mcc = $mcc; $answer->request = 'success'; }else $answer->request = 'param_error'; break; // DEFAULT default: $answer->request = 'unknown_level_1'; break; } } ?>