JeuWeb - Crée ton jeu par navigateur
Smarty - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Smarty (/showthread.php?tid=5403)



Smarty - xeys - 04-05-2011

Bonjour, je viens de commencer a m'initier au moteur de template et notament smarty.
J'arrive très bien a créer une page en suivant le tuto partout.
Ce que je ne comprend c'est comment faire la navigation.

Une fois ma page index créer comment faire le lien avec une page inscription par exemple ?
Chaque page que je créer doit reprendre l'intégralité de mon code ?

Par exmple j'ai ma page index.php avec :
Code :
<?php
$myRoot = "./";
$template = "./templates/template1/";
require("../libs/smarty.class.php");

$smarty = new Smarty();

// Fixer les chemins de template (optionnel)
$smarty->template_dir = $myRoot.'templates';
$smarty->compile_dir = $myRoot.'templates_c';
$smarty->assign("template", $template);
//$smarty->clear_all_cache();

//démarrage de la session
session_start();

/*  explication du code ci-dessous pour le choix de la langue:
* on verifi si dans notre url la variable "strLangue" a été modifiée.
* si oui on met a jour notre variable de session
* sinon on verifie si la veriable de session est vide
* si oui on met par defaut la langue français
* sinon on utilise la langue enregistrée dans notre variable de session
*/
if(isset($_GET['strLangue'])) {
$langAutorises=array('fr','en','it','es');
if (in_array($_GET['strLangue'],$langAutorises))
$_SESSION['strLangue']=$_GET['strLangue'];
}
$_SESSION['strLangue'] = ($_SESSION['strLangue']!="")?$_SESSION['strLangue']:'fr';
$smarty->config_dir  =  'lang/';

/** affichage du template **/
$smarty->display($template.'index.html');
?>

ma page index.html :
Code :
{config_load file="`$smarty.session.strLangue`/lang.txt"}
{config_load file="`$smarty.session.strLangue`/menu.txt"}
<html xml:lang="it" xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
        <title>War for life</title>
        <link href="{$template}css/main.css" rel="stylesheet" type="text/css" media="all" />
    </head>

    <body>
        <div id="container">
        
            <div id="head">
                <div id="myname">
                <a>{#nomSite#}</a>
                </div>
            </div>
            
            <div id="menu">
                {include file="{$template}menu.html"}
            </div>
            
            <div id="header_line">&nbsp;</div>
            
            <div id="realbody">
            
                <div id="verticalmenu">
                    {include file="{$template}verticalmenu.html"}
                </div>
            
                <div id="content">
                    <div class="meteor"><h4>{#TitrePage#}</h4></div>
                    <p><img class="imageleft" src="{$template}images/picture.jpg" alt="fish1">
                     <br>
                    {#phraseAccueil#}
                </div>
            
            </div>
               <div id="foot">
                    
               </div>
            
        </div>
        <div style="width: 100%; background-image: url({$template}images/bg_niz.png); background-repeat: repeat-x; height: 110px;">
            <div id="footer">
                {include file="{$template}footer.html"}
            </div>
        </div>
    </body>

</html>

Je dois alors faire une page inscription avec le même code et juste {#phraseAccueil#} qui change par autre chose ?

Je suis assez perdu et je ne trouve pas de tuto qui rentre plus en détail la dessus.


RE: Smarty - srm - 04-05-2011

Qu'est ce qui a motivé ton choix sur Smarty plutôt que Twig ?


RE: Smarty - xeys - 04-05-2011

Pasque je connais pas Twig, mais je suis ouvert a tout renseignement vu que je commence juste à utiliser un moteur de template.


RE: Smarty - niahoo - 04-05-2011

arf je déteste ce truc ... sur prestashop j'en bouffe toute la journée du smarty et en fait ça sert à rien ...

Mais bon, puisque tu fais un include de ton menu par exemple, pourquoi ne pas procéder de la même manière avec ta phrase d'accueil, et le contenu central de ta page ?
ah si en fait smarty ça sert à ralentir l'affichage des pages, j'aime bien


RE: Smarty - xeys - 04-05-2011

beh je sais, j'ai fais sa comme sa mais sans trop savoir se que je fesais.
Je veux justement savoir la bonne façon de faire.


RE: Smarty - srm - 04-05-2011

Et bien abandonne tout de suite Smarty alors et prend Twig qui est 100x plus sympa :p


RE: Smarty - niahoo - 04-05-2011

mais surtout, trouves toi une bonne raison d'en utiliser un. pour moi le côté chiant de devoir marquer '<?php echo' ne suffit pas.


RE: Smarty - Sephi-Chan - 04-05-2011

Pour moi, l'intérêt d'un système de template est évident : le gain en terme de lisibilité est tout à fait conséquent.
D'autant que Twig n'impacte pas les performances puisqu'il génère des fichiers PHP classiques. La seule différence, c'est qu'on n'a pas à maintenir ces fichiers moches !


Sephi-Chan


RE: Smarty - xeys - 05-05-2011

Pourquoi je le fais je le fais je le sais, c'est la bonne façon de coder avec smarty que je ne sais pas trop.