Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2008, 15h09   #1
Membre habitué
 
Avatar de Colbix
 
Développeur Web
Inscription : juin 2006
Messages : 267
Détails du profil
Informations personnelles :
Âge : 26
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 267
Points : 122
Points : 122
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 :
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
Colbix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 17h43   #2
Membre confirmé
 
othmane bentalha
Inscription : mai 2006
Messages : 257
Détails du profil
Informations personnelles :
Nom : othmane bentalha
Âge : 25

Informations forums :
Inscription : mai 2006
Messages : 257
Points : 228
Points : 228
Bonjour,
il y a la fonction str_replace, dont voici un exemple tiré du manuel
Code :
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 :
1
2
 
$template=file_get_content($url_template);
Code :
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##
othmane126 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2008, 22h54   #3
Membre habitué
 
Avatar de Colbix
 
Développeur Web
Inscription : juin 2006
Messages : 267
Détails du profil
Informations personnelles :
Âge : 26
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 267
Points : 122
Points : 122
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
Colbix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2008, 23h04   #4
Membre habitué
 
Avatar de Colbix
 
Développeur Web
Inscription : juin 2006
Messages : 267
Détails du profil
Informations personnelles :
Âge : 26
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 267
Points : 122
Points : 122
J'ai fait ceci :

Code :
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;
    }
}
Colbix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2008, 23h41   #5
Membre régulier
 
Avatar de Kennel sébastien
 
Inscription : septembre 2008
Messages : 82
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : septembre 2008
Messages : 82
Points : 84
Points : 84
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...
Kennel sébastien est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h12.


 
 
 
 
Partenaires

Hébergement Web