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 :

[Smarty] Pseudo Frames PHP


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 13
    Points : 7
    Points
    7
    Par défaut [Smarty] Pseudo Frames PHP
    Bonjour,

    Voici un post que j'ai créé sur le forum de smarty, mais toujours pas de réponse au bout d'une semaine. Je m'en remet donc à vos lumières :

    Je viens de me mettre à smarty très recemment et me voilà déjà confronté à un problème. J'essaye de réaliser un site utilisant des pseudos frames php et je pense que la méthode que j'utilise n'est pas la bonne. Donc voici mon code source :

    index.tpl:
    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
     
    <body>
          <div id="entete">
             {include file='entete.tpl'}
          </div>
     
          <div id="menu">
             {include file='menu.tpl'}
          </div>
     
          <div id="contenu">
             {include_php file="$page"}
          </div>
     
          <div id="pied">
             {include file='pied.tpl'}
          </div>
       </body>
    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
     
     
    /*Récupération de la page demandée */
    $cat  = isset($_GET['cat']) ? $_GET['cat'] .'/' : 0 ;
    $page = isset($_GET['page']) ? $_GET['page'] : 0 ;
     
    if(!empty($_GET['page']) && is_file($cat. basename($_GET['page'].'.php'))) {
       $page = $cat. basename($_GET['page'].'.php') ;
    }
    else {
       $page = 'news.php';
    }
     
    $smarty = new Smarty() ;
    $smarty->assign("page",$page) ;
    $smarty->display('index.tpl');
    Pour résumer, lorsqu'on arrive sur l'index.php le script définit la page à afficher, l'assigne a une variable smarty, et grace à cette variable index.tpl sait quelle page inclure. Cette méthode à l'air de fonctionner mais dans la documentation smarty on peu lire pour {include.php}:
    Quote:
    include_php} est presque obsolète dans Smarty. Vous pouvez obtenir des résultats équivalents en utilisant les fonctions utilisateur.


    Donc je pense qu'il existe une meilleure façon que la mienne pour obtenir le même résultat. Mais je ne vois pas du tout comment faire.
    Quelqu'un pourrait-il m'expliquer de façon détaillée la meilleure méthode pour réaliser un site en pseudo frame php ?

    Merci beaucoup !

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Salut,

    Excepté que tu devrais vérifier le contenu de $cat et $page pour éviter qu'on ne puisse rentrer n'importe quoi, ta façon de faire ne me parait pas horrible.

    Quelque chose qui respecte un peu mieux la séparation métier/template serait d'utiliser un simple template comme page à inclure : pourquoi as-tu besoin d'une page PHP ?
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Tout d'abord merci pour votre réponse.

    En fait il me faut une page php ca j'ai besoin d'inclure du contenu dynamique dans ce div. Effectivement au début j'étais parti pour inclure uniquement des template mais je n'avais pas réussis.

    En fait je me pose une question, si j'utilise ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div id="contenu">
       {include file='$page'} 
    </div>
    Si $page désigne le nom d'un template (ex: maPage.tpl) , est-ce que la page associée à ce template (maPage.php) sera également appelée lors de l'inlude ?

  4. #4
    Membre chevronné
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Points : 1 790
    Points
    1 790
    Par défaut
    Bonjour,

    La réponse à ta dernière question est non puisque le template n'est en lui-même associé à aucun fichier, mais bien appelé par un script php.

    Toute les données doivent être dans ce fichier PHP qui implémente SMARTY. Ces données seront également utilisables dans le template inclu.

    Ici un exemple d'utilisation: http://eric-pommereau.developpez.com...e=page_4#LIV-D

    La technique des pseudo-frames (appel de plusieurs scripts php dans un script principal) n'est pas vraiment opportune quand tu utilises SMARTY (un seul script est responsable de la production de données).

    En revanche l'utilisation de la fonction "include" de SMARTY que tu suggères est à mon avis un bon moyen de faire ce que tu veux.

    @++

Discussions similaires

  1. pseudo Frame PHP et référencement
    Par kergad dans le forum Référencement
    Réponses: 0
    Dernier message: 31/03/2010, 21h52
  2. Problème de SESSION avec les "pseudo-frame" PHP
    Par kergad dans le forum Langage
    Réponses: 10
    Dernier message: 24/05/2008, 01h12
  3. Php & pseudos frames
    Par julio26 dans le forum Langage
    Réponses: 3
    Dernier message: 02/12/2006, 14h16
  4. pseudo frames php
    Par kimcharlene dans le forum Langage
    Réponses: 5
    Dernier message: 27/11/2006, 20h52
  5. [PHP-JS] Les pseudos frames
    Par argon dans le forum Langage
    Réponses: 10
    Dernier message: 25/05/2006, 19h37

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