84,29 → 84,8 |
* @return boolean false si la vue n'existe pas, sinon la chaine résultat. |
*/ |
final protected function getVue($nom_squelette, $donnees = array()) { |
$sortie = false; |
$chemin_squelette = ($this->registre->get('base_chemin_squelette')).$nom_squelette.'.tpl.html'; |
if (file_exists($chemin_squelette)) { |
|
// Extraction des variables du tableau de données |
extract($donnees); |
// Démarage de la bufferisation de sortie |
ob_start(); |
// si les tags courts sont désactivés |
if ((bool) @ini_get('short_open_tag') === false) { |
// Remplacement des tags courts par la syntaxe classique avec echo |
echo eval('?>'.$this->traiterTagsCourts($chemin_squelette)); |
} else { |
// sinon, on se contente d'inclure le squelette |
include $chemin_squelette; |
} |
// Récupèration du contenu du buffer |
$sortie = ob_get_contents(); |
// Suppression du buffer |
@ob_end_clean(); |
} |
|
// Retour du contenu |
$sortie = SquelettePhp::analyser($chemin_squelette, $donnees); |
return $sortie; |
} |
|
130,21 → 109,5 |
} |
return $sortie; |
} |
|
/** |
* Fonction chargeant le contenu du squelette et remplaçant les tags court php (<?= ...) par un tag long avec echo. |
* |
* @param String $chemin_squelette le chemin du fichier du squelette |
* |
* @return string le contenu du fichier du squelette php avec les tags courts remplacés. |
*/ |
private function traiterTagsCourts($chemin_squelette) { |
$contenu = file_get_contents($chemin_squelette); |
// Remplacement de tags courts par un tag long avec echo |
$contenu = str_replace('<?=', '<?php echo ', $contenu); |
// FIXME : à quoi sert ce deuxième remplacement? |
$contenu = preg_replace("/;*\s*\?>/", "; ?>", $contenu); |
return $contenu; |
} |
} |
?> |