Salut
Voilà je suis en train de coder un site pour un ami, et je me rend compte que l'utilisation de "template" (pas de design complets, je vais expliquer

) facilite énormément la vie, et surtout le code.
J'ai alors cherché dans le systeme d'Invision (un forum) qui propose l'intégration d'informations du forum (nombre de membres, de posts ...) à partir d'un systèeme de "mini-templates", qui s'appele ssi template.
J'ai alors cherché dans le code pour en arriver à un code (attention version très simplifiée, sans aucunes vérification, je les ait supprimée au fur et à mesure pour voir ce qui pouvait empecher mon script de marcher) que voici :
<?php
$export_type = "js";
$template_url = "templates";
switch ($_GET['a'])
{
case 'matchs':
do_matchs();
break;
default:
echo "erreur";
break;
}
function output($to_echo) {
$to_echo = str_replace ("\r", "", $to_echo);
$to_echo = str_replace ("\n", "", $to_echo);
$to_echo = str_replace ("'", "\"", $to_echo);
echo "<!--\ndocument.write('".$to_echo."');\n-->";
}
function load_template($template=""){
$filename = "templates/matchs.html";
if (file_exists($filename)) {
if ( $FH = fopen($filename, 'r') )
{
$template = fread( $FH, filesize($filename));
fclose($FH);
}
}
else{
echo "Erreur : $filename";
}
return $template;
}
function parse_template( $template, $assigned=array() )
{
foreach( $assigned as $word => $replace)
{
$template = preg_replace( "/\{$word\}/i", "$replace", $template );
}
return $template;
}
function do_matchs(){
$template = load_template("matchs.html");
$to_echo = parse_template( $template, array (
'date' => "ladate",
'team' => "leskilleurs",
'score' => "lescore",
'comment' => "commentaire"
)
);
output($to_echo);
}
?>
Que j'appele ensuite (pour l'intégrer dans ma page, avec une commande javascript :
Code : Tout sélectionner
<script type="text/javascript" src="templates_matchs2.php?a=matchs"></script>
et voici le script du fichier qui sert de template (matchs.html)
Code : Tout sélectionner
<tr>
<td width="25%">{date}</td>
<td width="50%">{team}</td>
<td width="20%">{score}</td>
<td width="5%">{comment}</td>
</tr>
et quand je charge la page avec le javascript, rien

j'ai essayé à partir de ma page "templates_matchs2.php" d'afficher ce que ça devrait donner en ajoutant :
$match = do_matchs();
Mais sans résultat non plus.
C'est alors que j'ai essayé d'afficher ce que ça devrait donner, toujours à partir de ce même fichier, mais cette fois en n'utilisant qu'une seule et même fonction
function do_matchs2(){
$filename = "templates/matchs.html";
$FH = fopen($filename, 'r');
$template = fread( $FH, filesize($filename));
$assigned = array (
'date' => "ladate",
'team' => "leskilleurs",
'score' => "lescore",
'comment' => "commentaire"
);
foreach( $assigned as $word => $replace)
{
$template = preg_replace( "/\{$word\}/i", "$replace", $template );
}
echo $template;
}
et là j'obtiens bien
ladate leskilleurs lescore commentaire
j'ai alors tenté d'appeler cette fonction sur la page où je veuix l'inclure j'ai donc modifié
case 'matchs':
do_matchs();
break;
Pour en faire
case 'matchs':
do_matchs2();
break;
Et ça ne marche pas

quelqu'un aurait il une idée ? je dois dire que mes tests étant fructueux je désespère

c'est peut être tout bête mais je n'ai rien trouvé :'(
Petite précision : les fonctions ne fonctionnent pas je crois dans quand je les appele dans ma focntion "do_matchs" car le output($to_echo)" par exemple ne donne rien, alors que si je fais un echo il m'est arrivé qu'il marche (je ne sais plus dans quel cas par contre avec tous ces essais :\)
Merci de votre aide