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

Bibliothèques et frameworks PHP Discussion :

[Templates] Question au niveau du include des données


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 13
    Points
    13
    Par défaut [Templates] Question au niveau du include des données
    Bonjour à tous,

    Voilà je réalise une màj de mon site en recodant en utilisant la méthode des Templates.

    Pour remplacer par exemple [CONTENU] dans mon template j'utilise un "ereg_replace"

    Cela marche trés bien si le contenu que je désire mettre est de l'HTML mais par contre si mon contenu contient du Php, il ne s'exécute pas. il est simplement affiché sans exécuter mon code?

    Comme pourrais-je faire pour que le code Php soit exécuté et non affiché

    Voici mon code pour le MoteurTemplate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?
    Function Moteur($Page) {
     
    	$Skin = "template/template.html"; 
    	$Ouvrir = fopen ($Skin, "rb"); 
    	$Affichage = fread ($Ouvrir, filesize ($Skin)); 
    	fclose ($Ouvrir); 
     
    	Switch ($Page) { 
    		case "accueil": $Include = "data/accueil.inc"; break;
    		default: $Include = "data/accueil.php";
    	}
     
    	$Ouvrir = fopen ($Include, "rb"); 
    	$Contenu = fread ($Ouvrir, filesize ($Include));
    	fclose ($Ouvrir); 
     
    	$Affichage = ereg_replace("\[CONTENU\]", $Contenu, $Affichage); 
     
    	return $Affichage;
    }
    ?>
    Merci d'avance de votre aide.

    ZbergK

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 219
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 219
    Points : 8 455
    Points
    8 455
    Billets dans le blog
    17
    Par défaut
    Salut !
    La philosophie des templates est justement de séparer présentation (HTML/CSS) et logique applicative, accès aux données, etc. (PHP).
    Ta démarche d'inclure directement du PHP à exécuter dans une template HTML est donc bancale et fait perdre l'avantage des templates.
    => Revois ta méthodologie.

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    C'est courageux de ta part de coder un nouveau moteur de templates mais je pense que tu pourrais t'éviter des migraines en utilisant l'un des nombreux qui existent déjà et qui fonctionnent à merveille : phplib, Smarty, Templeet, etc.
    Le post-it (dans le forum PHP) sur les templates pourrait probablement t'orienter.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Oui mais j'aimerais réaliser ca moi même, ca ne devrait pas posser de blem de ce niveau.

    Mon template ne contient en effet que du Html, c'est bien la le but.
    Je posséde également le moteur de mon template qui remplace les diverses balise de ce type [Blabla] par leur contenu.

    Dans mon monteur il y la Switch qui réalise l'include pour aller chercher la bonne page.

    Et dans CETTE page qui est "Includée" j'aimerais y insérer du code Php, par exemple une requête vers MySql, mais ou se trouve le blem c'est que j'utilise cette fonction ereg_replace()

    Et quel n'exécute pas le code Php mais elle l'affiche
    Comment faire ?

    Merci d'avance de votre aide
    ZbergK

    Ps : Voici le code du moteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?
    Function Moteur($Page) {
    	include ("config/config.php");
     
    	$Skin = "template/template.html"; 
    	$Ouvrir = fopen ($Skin, "rb"); 
    	$Affichage = fread ($Ouvrir, filesize ($Skin)); 
    	fclose ($Ouvrir); 
     
    	Switch ($Page) { 
    		case "accueil": $Include = "data/accueil.inc"; break;
    		default: $Include = "data/accueil.php";
    	}
     
    	$Ouvrir = fopen ($Include, "rb"); 
    	$Contenu = fread ($Ouvrir, filesize ($Include));
    	fclose ($Ouvrir); 
     
    	$Affichage = ereg_replace("\[CONTENU\]", $Contenu, $Affichage); 
     
    	return $Affichage;
    }
    ?>

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Bon, en ce cas tu peux eval()uer ton code avant de l'envoyer dans ta page incluse.
    Au fait, pourquoi ne pas utiliser file_get_contents() ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return preg_replace('#\[CONTENU\]#', eval(file_get_contents($Include)), $Affichage);

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 219
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 219
    Points : 8 455
    Points
    8 455
    Billets dans le blog
    17
    Par défaut
    C'est quand même très très moche. Dans le fichier que tu inclues tu devrais aussi utiliser ton moteur de templates et pas faire d'eval( )

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Ok Je suis d'accord avec vous.

    Je vais donc recommencer au début sachant que je vx réaliser tout par moi même

    Voilà, donc je désire recoder mon site en utilisant un Template
    Les pages de mon site garde toute le même design. Baniére en haut, contenu a gauche et menu a droit.

    Mais le contenu du menu est dynamique, et le contenu de la page aussi.

    Je peux donc utiliser un template pour le design je penses mais comment faire pour le menu de droite et les pages du site qui sont dynamique

    ---------------------------------
    BAN
    ---------------------------------
    Page - Menu

    ---------------------------------
    FOOTER
    ---------------------------------

    Pour mon design aucun blem,
    Mais par contre prenons l'exemple de ma page d'accueil qui contient 2 titres un pour les news et l'autre du blabla, mais leur contenu est dynamique, et je dois aller le rechercher dans une DB.

    Par contre d'autre page comme celle ou je vais mettre le "logger" elles ne sont pas dynamique, ce n'est qu'un simple formulaire.

    Comment puis-je réaliser tout cela aisément en utilisant un template si c'est possible bien sûre ?
    Merci d'avance de votre a tous

    ZbergK

Discussions similaires

  1. Question traitement des données (Question générale)
    Par aikinhdo dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2007, 10h35
  2. Réponses: 2
    Dernier message: 19/01/2007, 07h00
  3. [EXCEL] Validation des données saisies - nouvelle Question :-)
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 39
    Dernier message: 29/11/2006, 13h28
  4. question théorique sur le stockage des données
    Par jp_rennes dans le forum Administration
    Réponses: 1
    Dernier message: 18/09/2006, 18h28
  5. question sur le rafraichissement des données dans la base
    Par vbcasimir dans le forum Bases de données
    Réponses: 8
    Dernier message: 06/06/2005, 12h44

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