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

PHP & Base de données Discussion :

Inclure le contenu d'un fichier à un endroit précis


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut Inclure le contenu d'un fichier à un endroit précis
    Bonjour à tous,

    Sur mon site, je souhaiterai afficher un bandeau de recherche. Afin de ne pas répéter 15 fois la même manip si j'effectue des changements sur le formulaire, j'ai donc créé une page recherche.php que je voudrai donc inclure à un endroit précis sur ma page. Et c'est là qu'arrive le souci...

    Avec le code suivant, j'ai donc mon champ de recherche qui vient se poser au dessus de mon bandeau et au niveau de {FORM_RECHERCHE} qui est l'endroit où je souhaite le voir apparaitre, j'ai le chemin de la page "Mes documents/web/site/recherche.php" qui est écrit...

    Voici mon code (j'utilise un système de template):

    Sur ma page index.php
    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
    <?
    /* Requêtes */
    .............
     
    /* Attribution TPL */
    $tpl->set_filenames(array(
    		'main' => './tpl/index.tpl'
    ));		
     
    $tpl->assign_vars(array(
    		'FORM_RECHERCHE' => $form_recherche,
    ));
     
    include($form_recherche);
    $tpl->parse('main');
    ?>
    Sur ma page index.tpl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <html>
    ........................
        <div id="recherche">{FORM_RECHERCHE}</div>
    ........................
    </html>
    Sur ma page recherche.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    include 'conf.php';
     
    $sql->DatabaseConnexion();
    .......................
    $sql->DatabaseClose();
     
    /* Attribution TPL */
    $tpl->set_filenames(array(
    		'recherche' => './tpl/recherche.tpl'
    	));	
     
    $tpl->parse('recherche');
    ?>
    Sur ma page conf.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?
    $form_recherche = $DOCUMENT_ROOT.'/recherche.php';
    ?>
    Si quelqu'un pouvait m'éclairer, ça serait super!
    Merci d'avance!

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    En 1er, je dirais que tu utilise un système de template, mais est ce ton propre système ou est un Soft connu ?

    Tu fais explicitement un include($form_recherche) dans ton index.php, du coup, le contenu devrait être inclus à ce moment. C'est peut être pas le bon moment.

    Puis je vois que tu utilise 2 méthodes : tpl::set_filenames() et tpl::assign_vars().
    Mais à mon avis, aucune des 2 débouche sur un include.
    Il faudrait faire le point concernant les méthodes disponibles, mais comme ça, il en faudrait une justement qui fasse un include, ceci automatiquement.
    Sinon, créer cette méthode si elle n'existe pas.

    Puis peut être que la syntaxe pour faire un include n'est pas la bonne : {FORM_RECHERCHE}
    Celle ci serait prévue pour retourner la valeur d'une variable définie auparavant (méthode tpl::assign_vars).

    Dernier recourt, ce serait d'exploiter les ob_start/ob_get_contents pour stocker le contenu HTML du template de recherche dans une variable, vider le tampon, l'assigner avec tpl::assign_var(), et théoriquement, ça devrait à nouveau générer le HTML là où il faut.

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'ai utilisé il y a quelques année ce système de template chez un client ( c'est celui de phpBB, cf http://genova.developpez.com/articles/template_phpbb/ )

    Mon seul conseil : si tu en as la possibilité, change tant qu'il est encore temps ! ( pour Smarty par exemple ). J'ai jamais autant galéré avec un système de template qu'avec celui-ci !

    Dernier recourt, ce serait d'exploiter les ob_start/ob_get_contents pour stocker le contenu HTML du template de recherche dans une variable, vider le tampon, l'assigner avec tpl::assign_var(), et théoriquement, ça devrait à nouveau générer le HTML là où il faut.
    Je crois que c'est la seule solution que tu as.

    Tu devrais aussi peut être revoir ton architecture, car je suis pas certain que ta séparation vue/action soit bien claire (et avec ce système de template c'est indispensable)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut
    Excusez moi de ma réactivité légèrement tardive...

    Alors mon système de template, c'est quand j'ai fait ma formation PHP qu'on me la fournis sans plus d'explication, je n'y touche jamais.

    Par contre, en ce qui concerne "ob_start/ob_get_contents", je ne connais pas, qu'est ce que c'est?

Discussions similaires

  1. Inclure le contenu d'un fichier (x)HTML dans un autre
    Par IsmaX dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 03/01/2009, 16h30
  2. Réponses: 15
    Dernier message: 04/06/2008, 14h44
  3. joindre un fichier à un endroit précis
    Par johan971 dans le forum SharePoint
    Réponses: 0
    Dernier message: 22/05/2008, 13h03
  4. Ecrire dans un fichier à un endroit précis
    Par alliance dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 09/11/2007, 17h05
  5. Réponses: 7
    Dernier message: 08/07/2004, 14h47

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