IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Faire un template


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Colbix
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 266
    Points : 150
    Points
    150
    Par défaut Faire un template
    Bonjour, j'essaye de faire un petit site avec un système de template...

    J'ai donc une page html avec du contenu à remplacer: par exemple ##MENU##, ##CONTENT##, ##HEADER##, ##FOOTER##.

    Voici ce que je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function applyContent($buffer)
    {
        // ereg_replace ?
    }
     
    ob_start("applyContent");
    require('montemplate.html');
    ob_end_flush();
    Je voulais savoir comment remplacer les ##CONTENT## etc par le contenu d'une page mapage.php qui génère du code html...

    Merci pour votre aide
    A bientôt

  2. #2
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 318
    Points
    318
    Par défaut
    Bonjour,
    il y a la fonction str_replace, dont voici un exemple tiré du manuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // Génère : <body text='black'>
    echo $bodytag = str_replace("%body%", "black", "<body text='%body%'>");
     
    // Génère : Bnjr l mnd
    $voyelles = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
    echo $consonnes = str_replace($voyelles, "", "Bonjour le monde");
     
    // Génère : Vous devriez manger des pizzas, des glaces et des gâteaux tous les jours.
    $phrase  = "Vous devriez manger des fruits, des légumes et des fibres tous les jours.";
    $regime = array("fruits", "légumes", "fibres");
    $bonne_chere   = array("pizzas", "glaces", "gâteaux");
     
    echo $newphrase = str_replace($regime, $bonne_chere, $phrase);
    Et il y a aussi ereg_replace() et preg_replace().
    Tu dois récupérer le contenu de ton template dans une chaine de caractère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $template=file_get_content($url_template);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    str_replace("##color##","#FFAAEE",$template);
    Bon voici la méthode. En tout cas si tu veux travailler avec les templates je te conseille d'utiliser le moteur de template Smarty au lieu de créer ton propre moteur de template, tu gagneras en temps et en qualité. Et il te permettrea de faire des inclusions comme tu veux faire avec ##HEADER##

  3. #3
    Membre habitué Avatar de Colbix
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 266
    Points : 150
    Points
    150
    Par défaut
    str_replace("##color##","#FFAAEE",$template);

    Oké, mais c'est tout a fait statique.... Si je voulais mettre le contenu d'une page php (apres exécution du script) à la place de ##color##, comment je pourrait faire ?

    ty pour ta réponse

  4. #4
    Membre habitué Avatar de Colbix
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 266
    Points : 150
    Points
    150
    Par défaut
    J'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function getContent($page)
    {
        if(file_exists($page))
        {
            ob_start();
            include($page);
            $content = ob_get_contents();
            ob_clean();
            ob_end_flush();
            return $content;
        }
    }

  5. #5
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    Salut, créer un système de template est assez difficile, faut que tu connaisses la POO, les expressions régulières et la récursivité...

    Perso, quand j'avais créé mon système de template j'avais utilisé les «{» «}» pour représenter les variables et les commentaires html « <!-- » « --> » pour représenter les blocs...

Discussions similaires

  1. [2.x] faire une Template (fichier twig)
    Par marwazmandar dans le forum Symfony
    Réponses: 35
    Dernier message: 02/08/2012, 10h13
  2. faire une Template avec jquery
    Par marwazmandar dans le forum jQuery
    Réponses: 0
    Dernier message: 26/06/2012, 12h49
  3. Comment faire des templates
    Par seadog_for_life dans le forum Débuter
    Réponses: 3
    Dernier message: 22/06/2011, 19h30
  4. [Joomla!] Faire un template différent par section
    Par guy2004 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 16
    Dernier message: 28/12/2010, 09h17
  5. Comment faire un template de template
    Par alen dans le forum Langage
    Réponses: 7
    Dernier message: 05/06/2008, 23h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo