Topic: If avec moteur de template

Salut à tous,

J'ai trouver ton moteur de template et je le trouve assez bien tongue.
Mais je n'arrive pas a utiliser les condition if.

Si tu pouvait me montrer un exemple, Merci D'avance

Re: If avec moteur de template

Tu peux commencer par regarder le template qui gère SlashOrg.Net :

http://www.slashorg.net/?act=showtemplate

Après, il suffit de setter la variable utilisée par if via set_var(), exemple :

$template->set_var('doif==1');

...

{if_doif}

...

{nif_doif}

Re: If avec moteur de template

J'ai pas tout compris tongue,

moi j'aimerai enfaite faire ceci :
if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)

Mais je galère un peu tongue

J'ai vu que dans le template de slashdot il y avait.
{if_isNotLoggedIn}

Mais a quoi cela correspond t'il ?

Re: If avec moteur de template

En fait, il y'a une partie du code dans ton .php et une partie dans le(s) template(s). Une sorte de frontend/backend si tu veux : le code behind (dans les .php) envoie des paramètres à la classe template, et au moment de rendre la page, le moteur de template interprète les balises en conséquence. Dans ton cas :

==Dans ton .php==
if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)
    $template->set_var('isLoggedIn==1');

$template->set_var('userName=='.$username);
$template->set_var('lastLogin=='.$lastlogin);

==Dans ton fichier de template==
{if_isLoggedIn}
<p>Bonjour {var_userName} ! Votre dernière connexion date du {var_lastLogin}.
{nif_isLoggedIn}


J'espère avoir été clair. smile

5 (edited by bestpig 13/04/2007 15:43:07)

Re: If avec moteur de template

Oui l'a j'ai bien compris tongue.

Merci beaucoup (Vraiment super moteur de template bravo)

EDIT : Sa marche lol, mais comment faire un else ?

Exemple :
Voila ce que j'aimerai

{if_isLogged}
<a href="logout.php" title="Connection">Déconnexion {BestPig}</a>
{else}
<a href="#"  title="Connection">Connexion</a>
<a href="#" title="Inscription">Inscription</a>
{nif_isLogged}

Redit :
J'ai réussi en fesant comme ça :
if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)
{
    $template->set_var('isLogged==1');
    $template->set_var('isNotLogged==0');
}
else
{
    $template->set_var('isNotLogged==1');
    $template->set_var('isLogged==0');
}

et

{if_isLogged}
<a href="logout.php" title="Connection">Déconnexion {BestPig}</a>
{nif_isLogged}
{if_isNotLogged}
<a href="#"  title="Connection">Connexion</a>
<a href="#" title="Inscription">Inscription</a>
{nif_isNotLogged}

Mais n'y a t'il pas une autre façon ?

Re: If avec moteur de template

Effectivement il ne gère pas le 'else', je me rappelle pas pourquoi j'avais décidé de faire comme ça (c'est un projet qui remonte un peu smile ), je crois que c'était pour éviter de surcharger le template de code...

Cordialement.

Re: If avec moteur de template

Ok, dommage.

Sa aurait était bien au moins un else.
Et puis pourquoi pas un elseif après tongue

Sinon il reste quand même bien, je vait le garder...