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
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>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>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 j'ai alors tenté d'appeler cette fonction sur la page où je veuix l'inclure j'ai donc modifiéladate leskilleurs lescore commentaire
case 'matchs':
do_matchs();
break;
Pour en faire
case 'matchs':
do_matchs2();
break;
Et ça ne marche pas 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