Subversion Repositories Applications.framework

Compare Revisions

Ignore whitespace Rev 151 → Rev 152

/trunk/framework/Controleur.php
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;
}
}
?>