From 76b4afa11f075b704fcf9cd3b542e8058db153f6 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sat, 21 Nov 2015 13:28:13 +0100 Subject: [PATCH] Gestion de l'encodage utf-8 de la BDD --- manager/database.php | 28 ++++++++++++++++++++++++++-- manager/repo/controle.php | 2 +- manager/repo/group.php | 4 ++-- page/_JS/career.js | 2 -- page/career.php | 4 ++-- 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/manager/database.php b/manager/database.php index de4da0f..2bb7b3f 100755 --- a/manager/database.php +++ b/manager/database.php @@ -67,15 +67,39 @@ class DataBase{ * @return newFetchData retourne le tableau donné en paramètre mais sans les valeurs à clés numériques * */ - public static function delNumeric($fetchData){ + public static function delNumeric($fetchData, $oneDimension=false){ + + /* [1] 2 dimensions + ===============================================*/ + if( !$oneDimension ){ + // on supprime les doublons des entrées (indice numérique) for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs foreach($fetchData[$i] as $col => $val){ // pour toutes les entrées - $fetchData[$i][$col] = utf8_encode($val); + + if( !mb_detect_encoding($val, 'UTF-8') ) + $fetchData[$i][$col] = utf8_encode($val); + if( is_int($col) ) // si l'indice est un entier unset( $fetchData[$i][$col] ); // on le supprime } + /* [2] 1 dimensions + ===============================================*/ + }else{ + + // on supprime les doublons des entrées (indice numérique) + foreach($fetchData as $i=>$val){ // pour toutes les entrées + + if( !mb_detect_encoding($val, 'UTF-8') ) + $fetchData[$i] = utf8_encode($val); + + if( is_int($i) ) // si l'indice est un entier + unset( $fetchData[$i] ); // on le supprime + } + + } + return $fetchData; } diff --git a/manager/repo/controle.php b/manager/repo/controle.php index af858ff..c63f549 100755 --- a/manager/repo/controle.php +++ b/manager/repo/controle.php @@ -66,7 +66,7 @@ class controleRepo extends DBAccess{ } // on retourne le résultat en supprimant les doublons à indices numériques - return $getControleInfo->fetch(); + return DataBase::delNumeric( $getControleInfo->fetch(), true ); } diff --git a/manager/repo/group.php b/manager/repo/group.php index f5a2815..d69844a 100755 --- a/manager/repo/group.php +++ b/manager/repo/group.php @@ -44,7 +44,7 @@ class groupRepo extends DBAccess{ $getGroupeInfo = DataBase::getPDO()->prepare("SELECT id_groupe as id, nom, libelle FROM groupe WHERE id_groupe = :groupeUID"); $getGroupeInfo->execute(array( ':groupeUID' => $groupeUID )); - return $getGroupeInfo->fetch(); + return DataBase::delNumeric( $getGroupeInfo->fetch(), true ); } @@ -217,7 +217,7 @@ class groupRepo extends DBAccess{ ORDER BY g.nom"); $getGroupe->execute(array( ':etudiant' => $etudiant, ':semestre' => $semestre )); - return $getGroupe->fetch(); + return DataBase::delNumeric( $getGroupe->fetch(), true ); } diff --git a/page/_JS/career.js b/page/_JS/career.js index 4365bd8..ce89443 100755 --- a/page/_JS/career.js +++ b/page/_JS/career.js @@ -203,8 +203,6 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != n for( var i = 0 ; i < saisieObj.length ; i++ ){ if( /active/.test(saisieObj[i].inputEl.className) ){ nbRequest += 1; - - addClass( saisieObj[i].button, 'loading' ); var request = { // on définit la requête pour API level_0: 'career', diff --git a/page/career.php b/page/career.php index 6f44a48..11e97f3 100755 --- a/page/career.php +++ b/page/career.php @@ -348,10 +348,10 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif echo ""; - echo "'; + echo "'; echo ''; - echo ""; + echo ""; echo "";
".$answer->controle['module'].' - '.$answer->controle['libelle'].'".$answer->controle['nom'].' - '.$answer->controle['libelle'].'
".$answer->controle['libelle']."".$answer->controle['libelle']."".$answer->controle['module']." - ".$answer->controle['modulelib']."