35,6 → 35,7 |
$this->registre->set('base_chemin_squelette', Config::get('chemin_squelettes')); |
$this->registre->set('base_chemin_controleur', Config::get('chemin_controleurs')); |
$this->registre->set('base_url_application', new Url(Config::get('url_base'))); |
$this->verifierEtReencoderTableauRequete(); |
} |
|
/** |
85,6 → 86,7 |
*/ |
final protected function getVue($nom_squelette, $donnees = array()) { |
$chemin_squelette = ($this->registre->get('base_chemin_squelette')).$nom_squelette.'.tpl.html'; |
|
$sortie = SquelettePhp::analyser($chemin_squelette, $donnees); |
|
if (Config::get('sortie_encodage') != Config::get('appli_encodage')) { |
117,7 → 119,7 |
} |
|
/** |
* Fonction prenant en paramètre un talbeau de données et effectuant un traitement dessus. |
* Fonction prenant en paramètre un tableau de données et effectuant un traitement dessus. |
* Cette fonction est à surcharger dans les classes filles pour automatiser un traitement |
* avant chaque chargement de vue. |
* |
128,5 → 130,43 |
protected function preTraiterDonnees($donnees) { |
return $donnees; |
} |
|
/** |
* Procédure vérifiant l'encodage des tableaux $_GET et $_POST et les transcodant dans l'encodage de l'application |
*/ |
protected function verifierEtReencoderTableauRequete() { |
if(Config::get('sortie_encodage') != Config::get('appli_encodage')) { |
|
$_POST = $this->encoderTableau($_POST, Config::get('appli_encodage'),Config::get('sortie_encodage')); |
$_GET = $this->encoderTableau($_GET, Config::get('appli_encodage'),Config::get('sortie_encodage')); |
|
} |
} |
|
/** |
* Fonction récursive transcodant toutes les valeurs d'un tableau de leur encodage d'entrée vers un encodage de sortie donné |
* @param $tableau Array Un tableau de données à encoder |
* @param $encodage_sortie String l'encodage vers lequel on doit transcoder |
* @param $encodage_entree String l'encodage original des chaines du tableau (optionnel) |
* @return Array Le tableau encodé dans l'encodage de sortie |
* |
*/ |
final protected function encoderTableau($tableau,$encodage_sortie,$encodage_entree = null) { |
|
if (is_array($tableau)) { |
|
foreach ($tableau as $cle => $valeur) { |
|
if (is_array($valeur)) { |
$tableau[$cle] = $this->encoderTableau($tableau[$cle]); |
} |
else { |
$tableau[$cle] = mb_convert_encoding($valeur,$encodage_sortie,$encodage_entree); |
} |
} |
} |
|
return $tableau; |
} |
} |
?> |