Vous n'êtes pas connecté.







Salut,
j'aurais une petite question à vous poser : j'espère que j'ai pas raté un message j'ai fait la recherche sur le forum mais y'avait pas vraiment ce que je voulais.
En fait, je me fais un genre de template, et donc on affiche tout en html dans la page main.tpl, et quand il faut du code php, je met un <rpb_page.php> .
L'idée serait de prendre ensuite le nom "page.php" et l'inclure en code php dans la page. J'avais essayé de remplacer et de planter un require() ou un include() dans le code en remplacement, mais ça marche pas. Ensuite je me suis dit que je pouvais essayer un file_get_contents() seulement là c'est un autre problème... ça inclut bien le code de ma page, mais il est pas interprété en php......
j'ai vu dans les forums punbb, ils font un truc du genre
// START SUBST - <pun_include "*">
while (preg_match('#<pun_include "([^/\\\\]*?)">#', $tpl_redir, $cur_include))
{
if (!file_exists(PUN_ROOT.'include/user/'.$cur_include[1]))
error('Impossible de procéder à l\'inclusion utilisateur <pun_include "'.htmlspecialchars($cur_include[1]).'"> depuis le template redirect.tpl. Il n\'y a pas de fichier dans le répertoire /include/user/');
ob_start();
include PUN_ROOT.'include/user/'.$cur_include[1];
$tpl_temp = ob_get_contents();
$tpl_redir = str_replace($cur_include[0], $tpl_temp, $tpl_redir);
ob_end_clean();
}
// END SUBST - <pun_include "*">Alors je me disais que comme ça, ça faisait l'effet d'un "include" à la place de la balise voulue... j'ai essayé mais ça marche pas vraiment...
Y'a une subtilité pour remplacer un <balise_inventée> par une page php pour faire un genre de template ?
Merci d'avance, salutations
TOP Hors ligne


Il existe même deux solutions :
- celle que tu nous présente avec ton bout de code : il s'agit d'une bufferisation. Renseigne-toi sur les fonctions ob_*, elles permettent de faire exécuter le fichier PHP en question mais d'en capturer le retour, en ayant ainsi le loisir de l'afficher plus tard.
- utiliser la fonction file_get_contents() suivi d'une fonction eval().
Mais au final, le code que tu as codé de PunBB est la réponse parfaite à ta question, c'est du tout cuit
.
Il te suffit de modifier le pattern de la fonction preg_match dans le while.
TOP Hors ligne







Euh bizarre, j'avais tout modifié et ça marchait pas pourtant...
D'un copier-coller...
Il m'incluait mon code, mais pas à la place de la balise à remplacer, il le mettait avant le code html O_o
vais réessayer
EDIT: donc il m'incluait le code mais sans l'interpréter (sinon vous allez vous demander comment il faisait vu le message suivant
)
Dernière modification par Mistic Warrior (05/02/07 19:29:48)
TOP Hors ligne







Vraiment désolé pour le post qui sert à rien les gars...
Voici l'explication du problème : J'avais bien trouvé le code punbb que je voulais tester, mais il fonctionnait pas. J'ai cherché pendant 2h comment le modifier, puis je me suis penché sur une autre solution.
En l'occurence, ce qui s'est passé c'est que j'étais pas sur mon ordi quand j'ai testé, et j'avais une version beta de easyphp, et le php fonctionnait pas (je sais pas pourquoi). Alors je m'en suis rendu compte rapidement, mais du coup je suis parti chez moi avec le "le code punbb fonctionne pas chez moi, je dois le changer" 
Bref.
Ju me dis "oui il marche", je teste et c'est le jackpot
. Que de temps perdu pour une bêtise ^^
Merci Ju 
TOP Hors ligne








ce qu'on peut perdre comme temps parfois pour une bêtise.... lol

TOP Hors ligne







ouais... mais c'est une bonne expérience : ça m'arrivera plus 
Par contre la perte de temps est regrettable c'est clair :S
TOP Hors ligne