32,8 → 32,6 |
$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('base_url_application'))); |
|
$this->verifierEtReencoderTableauRequete(); |
} |
|
/** |
45,11 → 43,13 |
*/ |
final public function chargerModele($nom_modele) { |
$sortie = true; |
$modele = $this->getModele($nom_modele); |
if ($modele !== false) { |
$this->$nom_modele = new $nom_modele; |
} else { |
$sortie = false; |
if (!isset($this->$nom_modele)) { |
$modele = $this->getModele($nom_modele); |
if ($modele !== false) { |
$this->$nom_modele = new $nom_modele; |
} else { |
$sortie = false; |
} |
} |
return $sortie; |
} |
57,8 → 57,8 |
/** |
* Retourne un modele donné |
* |
* @param string $nom_modele le nom du fichier modèle à charger sans son extension |
* @param String $ext l'extension du fichier du modèel (par défaut : ".php" |
* @param string $nom_modele le nom du fichier modèle à charger sans son extension |
* @param String $ext l'extension du fichier du modèel (par défaut : ".php" |
* |
* @return mixed false si le chargement a échoué, sinon l'objet du modèle demandé. |
*/ |
79,9 → 79,9 |
* Fonction prenant en paramètre le nom d'un squelette et un tableau associatif de données, |
* en extrait les variables, charge le squelette et retourne le résultat des deux combinés. |
* |
* @param String $nom_squelette le nom du squelette sans son extension |
* @param Array $donnees un tableau associatif contenant les variables a injecter dans la vue |
* @param String $ext l'extension du fichier du squelette (par défaut : ".tpl.html" |
* @param String $nom_squelette le nom du squelette sans son extension |
* @param Array $donnees un tableau associatif contenant les variables a injecter dans la vue |
* @param String $ext l'extension du fichier du squelette (par défaut : ".tpl.html" |
* |
* @return boolean false si la vue n'existe pas, sinon la chaine résultat. |
*/ |
106,64 → 106,5 |
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 (self::$encodage == false && 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')); |
|
self::$encodage = true; |
} |
|
// traitement des magic quotes |
$this->verifierEtTraiterSlashTableauRequete(); |
} |
|
/** |
* Procédure vérifiant l'activation des magic quotes et remplacant les slash dans les tableaux de requete |
*/ |
private function verifierEtTraiterSlashTableauRequete() { |
|
if ( get_magic_quotes_gpc() ) { |
|
if (!function_exists('stripslashes_deep')) { |
function stripslashes_deep( $value ) { |
|
return ( is_array($value) ) |
? array_map('stripslashes_deep', $value) |
: stripslashes($value); |
|
} // end of 'stripslashes_deep()' |
|
$_GET = array_map('stripslashes_deep', $_GET); |
$_POST = array_map('stripslashes_deep', $_POST); |
$_COOKIE = array_map('stripslashes_deep', $_COOKIE); |
} |
} |
} |
|
/** |
* 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($valeur, $encodage_sortie, $encodage_entree); |
} else { |
$tableau[$cle] = mb_convert_encoding($valeur, $encodage_sortie, $encodage_entree); |
} |
} |
} |
return $tableau; |
} |
} |
?> |