Annonces


#1 05/02/07 19:04:27

Mistic Warrior
CtrlAltUser Actif
Lieu: Suisse
OS: Linux [autre]
Date d'inscription: 31/05/04
Messages: 708
Envoyer un MP

  Email  Site web

[PHP] Les remplacements dans les templates

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

Code:

// 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 &lt;pun_include "'.htmlspecialchars($cur_include[1]).'"&gt; 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


In a world without wall nor fences, who needs Windows and Gates ?

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#2 05/02/07 19:15:42

Ju
ju@jabber.sk
Equipe Admin
Lieu: Boston, Texas
OS: Linux Debian
Date d'inscription: 26/01/04
Messages: 5878
Envoyer un MP

  Email  Site web

Re: [PHP] Les remplacements dans les templates

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 smile.
Il te suffit de modifier le pattern de la fonction preg_match dans le while.



TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#3 05/02/07 19:18:08

Mistic Warrior
CtrlAltUser Actif
Lieu: Suisse
OS: Linux [autre]
Date d'inscription: 31/05/04
Messages: 708
Envoyer un MP

  Email  Site web

Re: [PHP] Les remplacements dans les templates

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 tongue)

Dernière modification par Mistic Warrior (05/02/07 19:29:48)


In a world without wall nor fences, who needs Windows and Gates ?

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#4 05/02/07 19:28:42

Mistic Warrior
CtrlAltUser Actif
Lieu: Suisse
OS: Linux [autre]
Date d'inscription: 31/05/04
Messages: 708
Envoyer un MP

  Email  Site web

Re: [PHP] Les remplacements dans les templates

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" tongue

Bref.

Ju me dis "oui il marche", je teste et c'est le jackpot wink. Que de temps perdu pour une bêtise ^^

Merci Ju tongue


In a world without wall nor fences, who needs Windows and Gates ?

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#5 05/02/07 20:25:28

bs265172
Idéfix
Lieu: a l'est, plus à l'est
OS: Mac OS X
Date d'inscription: 27/07/04
Messages: 1117
Envoyer un MP

  Email

Re: [PHP] Les remplacements dans les templates

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


http://img116.exs.cx/img116/9092/50amour14sg.jpg

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation

#6 06/02/07 16:47:41

Mistic Warrior
CtrlAltUser Actif
Lieu: Suisse
OS: Linux [autre]
Date d'inscription: 31/05/04
Messages: 708
Envoyer un MP

  Email  Site web

Re: [PHP] Les remplacements dans les templates

ouais... mais c'est une bonne expérience : ça m'arrivera plus tongue

Par contre la perte de temps est regrettable c'est clair :S


In a world without wall nor fences, who needs Windows and Gates ?

TOP Hors ligne

  • Signaler
  • Citer
  • Ajouter à la citation
Actuellement aucun autre membre et 1 invité sur ce topic
Membres : [S'enregistrer]

Pied de page du Forum

Pub hébergeur :


CtrlAltSuppr.com, forums officiels de JSAND partagés avec Geek&Hype

Powered by PunCAS (JSAND) based on PunBB
© Copyright 2002–2005 Rickard Andersson