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 :

[POO] Problème de template


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de T0xF0x
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Points : 45
    Points
    45
    Par défaut [POO] Problème de template
    Bonjour à tous,

    J'ai un problème de template. J'ai fait un moteur de template tout simple ou on defini par exemple une variable title qui s'occupe du titre de la page dans le fichier .tpl ensuite parser...

    Probleme ! J'ai une page qui a besoin d'afficher plusisuer fois le meme template à chaque validation du formulaire du même template ! Avec PHP j'ai reussi à le faire niquel mais avec un design bien bourrin dans la page mais j'aimerais l'integrer a mon moteur de template maintenant ...

    Mon probleme est que le template s'affiche en double apres la premiere validation du form apres en triple etc ...

    A chaque chargement je recreer mon objet template je reinstancie les variables normal ... J'ai essayer de tuer l'objet à chaque rechargement mais ça marche pas j'ai essayer destroy(), delete() et __destruct() ...

    Merci de me donner un coup de main

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    ca dépend comme il est construit, mais tu dois stocker ton template dans une variable.
    et à chaque fois ca fait du coup, ca l'ajoute à la suite, il faut que à un moment la variable $var tu la reset : Voila.

  3. #3
    Membre du Club Avatar de T0xF0x
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Points : 45
    Points
    45
    Par défaut
    Merci de ta réponse mais je n'ai pas compris,

    Mon moteur est vraiment BASIC regarde :

    <?php
    class motor {
    var
    $search = array();
    var
    $replace = array();

    function
    setVar($name, $value) {
    $this->search[] = '{'.$name.'}';
    $this->replace[] = $value;
    }

    function
    show($file) {
    $tpl = file_get_contents('./templates/'.$file);
    echo
    str_replace($this->search, $this->replace, $tpl);
    }
    }
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

    Aller avouer vous avez encore rien vu d'aussi cours

    Donc apres dans le code je balance ça :

    <?php
    $moteur
    = new motor();
    $moteur->setVar('title', 'Mon titre');
    $moteur->show('page.tpl');
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

    et à la deuxieme validation du form de la page page.tpl je refais :

    <?php
    $moteur
    = new motor();
    $moteur->setVar('title', 'Mon titre apres validation 2');
    $moteur->show('page.tpl');
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

    etc ...

    Forcément que ça marche pas je comprend pourquoi c'est tres logique mais je sais pas comment y remedier :s

    Merci de votre aide

  4. #4
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    je travaille pas trop en POO, mais tu aurais pas un truc pour détruire ton moteur ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $moteur = new motor();
    		$moteur->setVar('title', 'Mon titre');
    		$moteur->show('page.tpl');
    destroy($moteur);
    un truc comme ca ... sinon tu peux essayer de changer de nom de variable entre la page 1 et 2, je pense que ca marchera.

  5. #5
    Membre du Club Avatar de T0xF0x
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Points : 45
    Points
    45
    Par défaut
    Lol justement c'est tout le but du topic comment detruire l'objet ??

    Je l'ai dit dans le premier post

    J'ai essayer de tuer l'objet à chaque rechargement mais ça marche pas j'ai essayer destroy(), delete() et __destruct() ...
    Merci de ton aide

Discussions similaires

  1. [POO] Problème de chargement d'une classe template
    Par shensi dans le forum Langage
    Réponses: 5
    Dernier message: 04/08/2007, 16h50
  2. Réponses: 4
    Dernier message: 08/04/2007, 18h17
  3. [POO] Problème de paramètre passé par référence
    Par dug dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2005, 21h29
  4. [POO] Problème lors de l'appel d'une propriété d'un objet.
    Par akecoocoo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/08/2005, 09h51
  5. Réponses: 3
    Dernier message: 22/03/2005, 10h13

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