Aller au contenu

les Templates


Hells_Dark

Sujets conseillés

Bonsoir à tous les hubmasters...

Alors voilà, j'ai trouvé un petit tutorial sur les Templates et je me demandais 2,3 trucs..

J'ai toujours du mal à comprendre le réél interet des templates...

"Differencier le contenu" de la forme si j'en croit l'intro de l'article de phpcodeur !

Mais n'est ce pas le role des CSS ?

Les templates et les CSS peuvent t-ils aller ensemble ? Se completent t-ils ?

Je lis du code comme ça :

<table border="1" cellpadding="2" cellspacing="0">

<tr>

<td> Le pseudo est : {PSEUDO} </td>

<td> Adresse email : <a href="mailto:{EMAIL}">{EMAIL}</a> </td>

</tr>

</table>

Si j'ai bien compris, c'est censé être "la forme" ça ?

Dans ce cas, les templates et les CSS pourraient très bien se completer, et cela pourrait se reveler très interressant tant le code ci dessus est compréhensible...

Quelqu'un qui parmis vous les utilise pourrait-il me dire si dorénavant les templates sont "indispensables" où encore si "pour lui", il le sont ?

Merci, j'spère que vous m'aurez compris ;)

Lien vers le commentaire
Partager sur d’autres sites

XML + CSS + XSLT et tu as un résultat qui te permet de différencier le contenu, la forme et la transformation.

Sinon les templates, on va dire que c'est l'équivalent du XSLT.

Je me trompe ?

maintenant dire que les template sont indispensable, je dirai que ça dépend beaucoup des projets et du type de contenu à gérer. Si tu as toutes tes pages différentes, tes templates ne pourront pas être très poussée. Quel est l'intérêt d'avoir autant de template que de pages ?

Maintenant si tu retombent souven sur la mise en page, tu gagnes a ne changer que ta template et non toutes les pages.

Lien vers le commentaire
Partager sur d’autres sites

XML + CSS + XSLT et tu as un résultat qui te permet de différencier le contenu, la forme et la transformation.

Donc, le contenu c'est pour l'XML ? les CSS, c'est pour la forme, et les templates ça serait pour la transformation ?

la transformation...ça me dit rien ! :lol:

Bon, alors, dans le XML, je vois ce que je dois y mettre...

Les CSS aussi...

Les Templates...heu...je trouve ça très utile pour définir les variables, ça sert à autre chose ? :blush:

Je vais retourner m'informer en attendant une réponse car comme vous le voyez, je suis pas au niveau :P

Lien vers le commentaire
Partager sur d’autres sites

Pour prendre 2 exemples différents :

Mambo utilise des templates, os commerce ne les utilise pas.

La différence ?

C'est que lorsque tu veux changer le logo dans Mambo, tu changes une ligne pour tout le site. Lorsque tu veux changer le logo dans os commerce, il te faut t'attaquer à une bonne vingtaine de fichiers.

Tu vas me dire que l'on ne change pas de logo tous les jours ? C'est pourtant ce que fait Google, avec les jeux Olympiques notamment.

Pour avoir un site uniforme, il faut donc utiliser des templates.

Pour prendre un autre exemple : Les fenètres Windows sont toutes les mêmes, parce qu'elles utilisent des modèles uniques.

Lien vers le commentaire
Partager sur d’autres sites

La différence ?

C'est que lorsque tu veux changer le logo dans Mambo, tu changes une ligne pour tout le site. Lorsque tu veux changer le logo dans os commerce, il te faut t'attaquer à une bonne vingtaine de fichiers.

Heu, les include permettent de ne changer qu'une ligne pour tout le site :rolleyes:

Ou encore, les CSS le permettent aussi :whistling:

Quand à ton exemple petit-ourson, je vaisme servir du tuto que g trouvé pour mieux comprendre...

ça c'est le template :

<table border="1" cellpadding="2" cellspacing="0">
 <tr>
   <td> Le pseudo est : {PSEUDO} </td>
   <td> Adresse email : <a href="mailto:{EMAIL}">{EMAIL}</a> </td>
 </tr>
</table>

Et ça le xml :

<?php
 include('template.php');

 $connect = mysql_connect('localhost', 'root', '');
 mysql_select_db('database', $connect);

 $result = mysql_query("SELECT pseudo, email FROM table_users WHERE id = '1'");
 $row = mysql_fetch_array($result);

 /*
  * Nous admettrons ici que le pseudo obtenu est bobe
  * et l'email est bobe_AT_domain.com
  */

 // on créé une nouvelle instance de la classe Template
 // et on indique en argument le chemin vers les modèles
 $template = new Template('./');

 // modèle à utiliser auquel on adjoint un nom arbitraire

 $template->set_filenames(array(
   'body' => 'template1.tpl'
 ));

 // Assignation des variables

 $template->assign_vars(array(
   'PSEUDO' => stripslashes($row['pseudo']),
   'EMAIL'  => $row['email']

 ));

 // Affichage des données

 $template->pparse('body');
?>

Marrant, j'aurais juré le contraire...

Je dois confondre CML et XHTML :blink:

Si j'ai mal compris, c'est que je connais pas grand chose en XML (entendu parler koi... j'utiliser tjs XHTML) et pas du tout le XSTL...

Donc le systeme de templtes ne sert à rien d'autre que de définir les variables séparemment ? J'ai du sauter des lignes :lol:

Modifié par Hells_Dark
Lien vers le commentaire
Partager sur d’autres sites

hum mouais le xml se "serait plutot" ta base de donnée.

le code que tu propose (le deuxieme) se serait le xslt , tandis que ta template, ce serait juste la gestion d'un noeud (donc contenu ds le xslt) appellé également template.

h**ttp://www.isabelle-hurbain.com/xslt/index.fr.html

Pour voir a quoi ressemble les 3 fichiers. dans le fichier xsl tu retrouve une partie principal (pour le noeud body) et des partie secondaires pour les autres noeud (menu par exemple)

Modifié par petit-ourson
Lien vers le commentaire
Partager sur d’autres sites

Donc, j'ai relu le tuto que j'ai trouvé et les templates ne servent ni plus ni moins qu'à définir toutes les variables qu'on utilise dans le site dans un fichier séparé !

Cela nous permet d'avoir un code très propre d'après ce que j'ai pu remarquer !

Mais alors, pourquoi ce n'est pas plus utilisé ?

D'après ce que j'ai vu c'est plus qu' interressant les gars ! Penchez vous la dessus !

Il y en a parmis vous qui s'en servent déjà ? :D

EDIT : désolé, j'ai RIEN compris ce que tu viens de dire petit-ourson, tu dois me surestimer :lol:

Je vais relire une dizaine de fois ta réponse pour tenter de comprendre... :P

Modifié par Hells_Dark
Lien vers le commentaire
Partager sur d’autres sites

ça c'est le template :

<table border="1" cellpadding="2" cellspacing="0">
 <tr>
   <td> Le pseudo est : {PSEUDO} </td>
   <td> Adresse email : <a href="mailto:{EMAIL}">{EMAIL}</a> </td>
 </tr>
</table>

L'idée, c'est de séparer les différents composants.

L'include, c'est fait pour inclure du code dans du code.

Les templates, c'est fait pour séparer le plus possible le code du design.

Dans l'exemple que tu donnes, on voit que le coté 'design' est préservé du code. En 'include', ca aurait donné :

<table border="1" cellpadding="2" cellspacing="0">
 <tr>
   <td> Le pseudo est :<? include("fichier_ou_est_le_nom_du_bonhomme"); ?> </td>
   <td> Adresse email : <a href="mailto:<? include("fichier_ou_est_le_href_du_mail"); ?>"><? include("fichier_ou_est_l_e_mail"); ?></a> </td>
 </tr>
</table>

Bref, ca complique..

Lien vers le commentaire
Partager sur d’autres sites

Ok, en fait ça sépare le php (ou autres langages surement) du html, voire xhtml en quelque sorte ! C 'est cela ?

Et bien, je trouve cela tout bonnement géniale !

Quelqu'un a des remarque qui vont dans mon sens ou dans l'autre ?

Il y en a qui n'apprécient pas ? D'autres pourraient me dévoiler leur entousiasme ?

Bref, ça m'interresse, mais je veux plus d'avis avant de me lancer !

Lien vers le commentaire
Partager sur d’autres sites

Ok, en fait ça sépare le php (ou autres langages surement) du html, voire xhtml en quelque sorte ! C 'est cela ?

bonjour,

on pourrait dire ca :)

Et bien, je trouve cela tout bonnement géniale !

Quelqu'un a des remarque qui vont dans mon sens ou dans l'autre ?

Il y en a qui n'apprécient pas ? D'autres pourraient me dévoiler leur entousiasme ?

Bref, ça m'interresse, mais je veux plus d'avis avant de me lancer !

Le cout des moteurs de templates (charge serveur, contraintes, apprentissage, evolutivite, etc.) n'etant pas nul, l'usage de moteurs de template ne doit pas etre systematique.

Il y a des cas ou cela peut presenter un avantage certain (a condition de prendre le moteur de template qui correspond le mieux a un besoin precis) : travail collabaratif, etc. D'autres ou cela se revele particulierement penalisant.

De mes differents tests, je retiens qu'un moteur php doit habituellement etre couple a un ou plusieurs systemes de cache, sous peine de voir les performances fortement chuter (coef 2,3 ou plus). PHPBB par exemple permet 2 niveaux de cache (cache de code compile, cache HTML)

XLST est tres seduisant. Mais pour des traitements pointus - par exemple : la mise en page dynamique de forums IPB - l'exclusivite xml/xsl/xslt seule est une vraie calamite (necessite alors d'etre completee par php). Il y a aussi le probleme d'une gestion de page par "portions" (par exemple via une API), impossible en XSLT pur. J'attends beaucoup de l'evolution xml/xsl/php5.

Pour revenir aux 'moteurs de template' et autres applications destinees a separer le contenu de la mise en forme, prennons un cas que je connais particulierement bien : Invision Power Board. IPB n'utilise pas de moteur de template, mais separe le code php du reste, ce qui foncierement revient au meme. De nombreux utilisateurs ont trouve ce systeme trop limite. Maintenant avec la version 2.0, ils auront la possibilite de realiser des test (if/else) directement a l'interieur du layout.

Plus tard, ils voudront probablement pouvoir effectuer des boucles (for, while, foreach, etc), faire des appels a des fonctions, acceder a un maximum de variables, creer des routines, etc, etc.

A chaque fois, il faudra introduire de nouvelles fonctionnalites, y associer des traitements ad hoc, et - pour l'utilisateur - faire l'apprentissage d'un nouveau pseudo-langage de plus en plus lourd.

A partir d'un certain moment, a vouloir ameliorer un pseudo-langage associe a un moteur de template, on re-invente la roue. Avec des performances nettement moindres que php d'origine.

Mais encore une fois, a chaque probleme sa solution. il y a des cas (souvents simples) pour lesquels, parmi tous les moteurs disponibles, un moteur de template represente la solution optimale, cad, repond efficacement a un probleme donne.

Le tout consistant a definir ses besoins avec precision, et ensuite analyser avec attention les solutions proposees. Autrement, le meilleur moteur de template, le moteur le plus evolue, le plus leger et le plus complet, reste php lui-meme... a condition de coder proprement :)

PHP est et restera un système de gabarits, même très évolué. Au début, c'était un outil pour me simplifier la vie avec les affichages HTML. Un jour, on m'a demandé d'ajouter l'instruction if, et je l'ai ajouté. Puis, on m'a demandé 'else', et naturellement, je l'ai ajouté. Et les boucles while et for ont suivi.. Certes, aujourd'hui, c'est bien plus qu'un simple langage de gabarit. Mais si vous regardez les applications de gabarits qui sont publiées, elles commencent aussi à intégrer des conditions et des boucles. Elles finiront par refaire ce que fait PHP, une couche au-dessus de PHP. C'est inutile!

plus d'informations : The Deadly Sins of Templates in PHP

Modifié par Dash
Lien vers le commentaire
Partager sur d’autres sites

Ce que tu developpe me montre bien que dans monc as, cela n'est pas utile.

Je pensais pouvoir me simplifier la vie grace aux templates mais je pense que cela me compliquerait ENORMEMENT.... je pense donc abandonner l'utilisation des templates, pour mon site tout du moins...

J'ai au moins compris comment "ça marchait" a peu près....

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...