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] Inclure un .tpl dans une page .php


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 18
    Par défaut [Smarty] Inclure un .tpl dans une page .php
    Bonsoir,

    Nouveau sur votre forum, je viens à vous pour trouver
    je l'espère un peu d'aide.

    Depuis déjà 2 jours je bute sur un problème peu être tout bête pourtant
    mais je n'y arrive pas du tout.

    Sur mon site, j'ai rajouté un nouveau script de petite annonce que j'ai placé dans un dossier, il marche impeccable, mais je voudrais appeler une partie
    de sa page d'accueil sur mon index racine, il fonctionne avec des fichiers templates .tpl...

    Donc ce que j'ai fait, j'ai pris la partie qui m'intéresse et je l'ai mise dans un nouveau fichier nommé en . tpl aussi.

    Et sur ma page d'index à la racine de mon site, qui est en .php j'ai fait une
    include, du coup ça affiche carrément le code de la page

    j'ai fait en plus des require par rapport au fichiers qui définisse les $smarty etc... mais rien a faire...

    Si ça peu aider le code du .tpl "boxacc.tpl" est:

    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
     
    {if $records}
     
    <div class="boxcaracc">
     
    	{foreach item="image" from=$records}
    <div class="new_box">
    		<p>
    		{if $use_fancy_urls}
    			<a href="/petites_annonces_auto/listings/view/{$image.make|strip:"-"}/{$image.model|strip:"-"}/{$image.listingid}/"><img src="{$image.imagethumbpath}" title="{$image.ad_title}" alt="{$image.ad_title}" /></a>
    		{else}
    			<a href="/petites_annonces_auto/listings.php?make={$image.make|strip:"-"}&amp;model={$image.model|strip:"-"}&amp;id={$image.listingid}"><img src="{$image.imagethumbpath}" title="{$image.ad_title}" alt="{$image.ad_title}" /></a>
    		{/if}
    		<br />{$image.ad_title}
            <br />{$image.price|number_format:0:".":"."} {$smarty.const.CURRENCY_SYMBOLS}
    		</p>
    </div>
    	{/foreach}
     
    </div>
     
    {/if}

    Et le bout de code php que j'utilise dans mon index.php est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php include("../petites_annonces/templates/default/boxacc.tpl"); ?>
    J'ai cherché des heures et des heures sur google et sur smarty.net entre autre sur la doc, pour trouver mon bonheur mais rien a faire, par contre j'ai souvent trouvé le contraire.

    Si quelqu'un pourrait m'aider un peu ce serait super

    Merci beaucoup.

  2. #2
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Un fichier de template smarty (.tpl) doit être analysé et interpreté par Smarty. Il ne faut donc jamais l'incure avec un require ou un include.

    Tu dois avoir quelque part une variable qui s'appelle $smarty, ou quelque chose comme ça. Il faut que tu l'utilise ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //
    // Commencer par donner à smarty toutes les variables qu'on veut utiliser :
    $smarty->assign('use_fancy_urls', $maVariable1);
    $smarty->assign('records', $maVariable2);
    $smarty->assign('image', $maVariable3);
    //etc. Ce sont toutes les variables qui commencent par $ dans le fichier tpl
     
    //
    // Afficher le fichier
    $smarty->display('boxacc.tpl');
    Si smarty est bien configuré, il trouvera tout seul ton fichier dans le répertoire défaut des templates.

    Avant de te lancer plus, je t'invite à lire ce tutoriel. Bon courage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 18
    Par défaut
    Merci de l'intérêt porté a mon soucis Halleck

    Donc au final j'ai compris la logique, on appel le fichier php qui traite et récupère toutes les variables puis ensuite appel le fichier tpl à l'affichage.

    J'ai donc pris modèle sur ma page index.php du script de petite annonce, je l'ai bien sur renommé pour mon utilisation.

    Je me suis donc retrouvé avec un boxacc.php et un boxacc.tpl ce dernier dans le fichier templates.

    Et donc quand j'appelle

    http://monsite.com/petites_annonce/boxacc.php

    ou bien

    avec un include dans le fichier index.tpl (du script de petite annonce)

    ça marche impeccable tout s'affiche etc...

    Par contre si je fait un include dans mon index racine index.php
    (script racine qui d'ailleur est un wordpress)

    Je me retrouve pas mal de message d'erreur y compris de session start.

    J'essaye de combler les erreurs notamment en faisant appel au fichier de fonctions demandé par rapport au erreur etc...

    Mais ça ne marche toujours pas et c'est un peu la folie ^^
    Donc du coup je pense que je vais abandonné l'idée et déplacé le script de petite annonce à la racine du site tout simplement pour utilisé sa page d'index comme page d'accueil général et copier et renommé la page index actuel des petites annonce pour l'appeler en accueil petite annonce...


    Merci encore en tous cas!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Inclure un fichier PDF dans une page PHP
    Par Regis0122 dans le forum Langage
    Réponses: 3
    Dernier message: 05/04/2009, 23h45
  2. Inclure un script bash dans une page php
    Par kazylax dans le forum Linux
    Réponses: 1
    Dernier message: 27/01/2009, 16h59
  3. [MySQL] Récupérer variable tpl dans une page PHP
    Par diabli73 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/09/2008, 10h12
  4. [Système] Inclure du code PERL dans une page php ?
    Par Munkey74 dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2007, 09h18
  5. [Configuration] Inclure un fichier .c dans une page PHP
    Par Korma dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 18/01/2006, 12h49

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