OVH Cloud OVH Cloud

Templates

11 réponses
Avatar
WebRod
Bonjour,

je suis en train de refaire mon site afin de dissocier le PHP du HTML.
Ceci afin de proposer à des infographistes, en tout cas à de gens ne
connaissant pas le php, de pouvoir changer à volonté le design du site sans
avoir à toucher au code. Cette partie m'étant réservée.

Je me suis donc penché sur les templates et lu différentes doc notamment ce
comparatif:
http://www.phpindex.com/download/Templates_V1.2.pdf

Cependant, si on réfléchit bien, quel est l'interêt d'utiliser ces
templates??
J'ai vu 2 types de templates.
Soit le template n'a pas son langage propre, dans ce cas son utilisation est
assez limitée. Il est par exemple plus difficile d'afficher un tableau. Il
faut un template spécifique pour définir un TR (ou utiliser un système de
block trés particulier)!! Et que faire si l'on veut afficher la ligne d'un
tableau d'une couleur différente en fonction d'un attribut (sans faire une
usine à gaz)?
Soit le template a son propre langage mais dans ce cas l'infographiste doit
le connaître.

Choisir un template sans language est à mon avis une limitation trop
importante.
Quitte à choisir un template avec un langage pourquoi ne pas utiliser PHP
directement?????

Tout d'abord expliquer à un infographiste que:
- #TITRE# correspond à l'affichage du titre de la page
ou que
- <? echo TITRE ?> correspond à l'affichage du titre de la page
ne parait pas plus compliqué!!!!
D'autre part lui expliquer le langage tordu de certains templates (comme
SMARTY) ou lui exliquer un bête foreach afin de boucler sur les lignes d'un
tableau, je ne vois pas la différence!!
Allez expliquez cette exemple tiré de SMARTY à un infograhiste:
{section name=sec1 loop=$contacts}
phone: {$contacts[sec1].phone}<br>
fax: {$contacts[sec1].fax}<br>
cell: {$contacts[sec1].cell}<br>
{/section}

n'est ce pas aussi compliqué (simple?) que de lui expliquer ceci:
foreach($contacts as $key=>$contact){
phone: <? echo $contact["phone"]?><br>
fax: <? echo $contact["fax"]?> <br>
cell: <? echo $contact["cell"]?> <br>
}

Bon si vous me suivez jusque là, on tire des tas d'avantages à utiliser du
code PHP et à ne pas utiliser d'autres systèmes de templates. En voici
quelques uns:
Dans les templates HTML:
- pas besoin de manipuler un autre langage (non normalisé!) et limité
- pas de dépendance vis à vis du code du moteur des templates
Dans les scripts PHP:
- pas de code php pollué par des appels de fonctions propres au moteur
choisi (->assign ou autre!!)

Bien sûr on garde la même logique:
- un script php qui initialises des variables en provenances par exemple de
base de données (aucun impression dans ces scripts)
- un template HTML qui s'occupe du rendu HTML de ces données et qui utilise
des commandes basiques de PHP (echo, IF, foreach)

Le script PHP faisant evidemment des includes de ces templates HTML.
Il n'y a plus qu'à laisser l'infographiste changer les templates HTML à sa
guise.

Est-ce que quelqu'un peut m'expliquer pourquoi il faudrait utiliser SMARTY
par exemple ou autre chsoe de ce genre???
- Qu'est-ce que l'infographiste, le non développeur a à y gagner?
- Qu'est-ce que le développeur PHP a à y gagner??

J'ai vraiment l'impression que ces différents moteur de templates vendent du
vent.

Rod

10 réponses

1 2
Avatar
Philippe Chaissac
Bonjour,


Bonjour,

je suis en train de refaire mon site afin de dissocier le PHP du HTML.
Ceci afin de proposer à des infographistes, en tout cas à de gens ne
connaissant pas le php, de pouvoir changer à volonté le design du site sans
avoir à toucher au code. Cette partie m'étant réservée.

Je me suis donc penché sur les templates et lu différentes doc notamment ce
comparatif:
http://www.phpindex.com/download/Templates_V1.2.pdf

Cependant, si on réfléchit bien, quel est l'interêt d'utiliser ces
templates??


C'est un débat qui dure depuis longtemps, et personnellement j'approuve
ton point de vue car php EST DÉJÀ un moteur de template. Rajouter une
couche semble superflu (excepté peut-être pour la gestion du cache de
certain, mais là encore y'a d'autres moyens plus élégants).

(...)
J'ai vraiment l'impression que ces différents moteur de templates vendent du
vent.


J'opine.

Dans l'idéal, il faudrait se contenter de générer une page
sémantiquement correcte et structurée, avec d'inélégantes mais pratiques
<div> englobantes et quelques <div> "libres" pour la décoration ; et on
laisse à l'infographiste le soin de se débrouiller avec la CSS. S'il est
gentil, lui laisser la possibilité d'utiliser un peu de javascript mais
bien surveiller l'utilisation qui en est faîte :-) !

Avatar
Guillaume Bouchard
WebRod wrote:
Bonjour,


Bonjour.
Je vais repondre un peu HS surement.

Quitte à choisir un template avec un langage pourquoi ne pas utiliser PHP
directement?????


Je suis entierement d'accord avec toi.

Tout d'abord expliquer à un infographiste que:
- #TITRE# correspond à l'affichage du titre de la page
ou que
- <? echo TITRE ?> correspond à l'affichage du titre de la page
ne parait pas plus compliqué!!!!


Quoi qu'il arrive, tu as 90 % de chance que ton infographiste foute le
bordel, donc quitte à faire simple autant faire avec PHP.

Le seul probléme que cela implique c'est en cas d'erreur de
l'infographiste, cela casse tout (Il peut même definir une variable qui
risque de pourrir le script par la suite). Bref je pense que c'est une
mauvaise idee de laisser faire du php à une personne non formée.

Maitenant cet argument ne ratrape toujours pas le fait que les moteur de
templates ne font que reinventer la roue en la surchargeant.

Allez expliquez cette exemple tiré de SMARTY à un infograhiste:
{section name=sec1 loop=$contacts}
phone: {$contacts[sec1].phone}<br>
fax: {$contacts[sec1].fax}<br>
cell: {$contacts[sec1].cell}<br>
{/section}


Je ne comprand pas moi même :)


Dans les templates HTML:
- pas besoin de manipuler un autre langage (non normalisé!) et limité


Ok.

- pas de dépendance vis à vis du code du moteur des templates


Ok.

Dans les scripts PHP:
- pas de code php pollué par des appels de fonctions propres au moteur
choisi (->assign ou autre!!)


Et re OK.

Est-ce que quelqu'un peut m'expliquer pourquoi il faudrait utiliser SMARTY
par exemple ou autre chsoe de ce genre???
- Qu'est-ce que l'infographiste, le non développeur a à y gagner?


AMHA Non.

- Qu'est-ce que le développeur PHP a à y gagner??


Avec smarty, rien AMHA.

J'ai vraiment l'impression que ces différents moteur de templates vendent du
vent.


Moi aussi.
Bon maitenant je vais dire ce que je pense vraiment. Le designeur n'a
RIEN à faire dans le code.

Pour moi le dev de reve se serait, moi qui fait le html (avec une
certaine structure logique d'imbrication de mes balises) et le designeur
qui fait par dessus son style CSS.

Comme cela, les deux n'ont plus besoin de se consulter. Le designeur
peux commencer à bosser alors que le code n'est pas pret (si il possede
la structure, il peut faire son habillage sans rien modifié). On ne
rappel pas le codeur pour chaques boulette du dsigneur, on ne rappele
pas le designeur quand le codeur change des trucs et que cela casse le
design. Les deux sont independants.

Voila, c'est un reve utopique inapplicable en ce moment, mais je reve à
le voir appliquer d'ici quelques années.

--
Guillaume.

Avatar
Stephane CARPENTIER
Guillaume Bouchard wrote:

Pour moi le dev de reve se serait, moi qui fait le html (avec une
certaine structure logique d'imbrication de mes balises) et le designeur
qui fait par dessus son style CSS.


Oui, tout à fait d'accord.

Voila, c'est un reve utopique inapplicable en ce moment, mais je reve à
le voir appliquer d'ici quelques années.


Il est où le problème ?

Mon site est laid, mais si un graphiste veux en faire quelque chose, il
le peut sans que je touche au code. D'ailleurs, sur mon site, il y a la
possibilité d'enlever la feuille de style ou de choisir entre deux feuilles
de styles différentes dès que le navigateur gère les CSS.

Pour un site où tu vois vraiment l'utilité des css, vas voir le classique :
http://www.csszengarden.com/tr/francais/
Le nombre et la variété des présentations est vraiment impressionnante. Le
code html est toujours le même.

Stéphane
--
Pour me répondre, traduire gratuit en anglais et enlever le .invalid
http://stef.carpentier.free.fr

Avatar
xk155
Je vais être à contre courant mais je tiens à exprimer un argument
en faveur des templates.

Lorsque dans un éditeur wysiwig, style macromedia, vous appliquez du
style à un "#TITRE", vous le voyez. Ce n'est pas forcement le cas avec
"<?=$titre?>". Le reste, les boucles et tout, il s'en fout le
graphiste... Enfin, je pense... Perso, je suis programmeur et j'estime
que le visuel doit etre pensé avant, une fois programmé, ils se
démerdent s'ils veulent y changer une virgule...

En tout cas le css a vachement simplifié les choses... A quand le XML
supporté par tous les navigateurs en natif... :))))
Avatar
WebRod
Le reste, les boucles et tout, il s'en fout le
graphiste... Enfin, je pense...
Non il s'en fout pas, c'est même indispensable qu'il comprenne le

fonctionnement des boucles, ou des blocks si le template est PHPLib ou
FastTemplate.
Et avec SMARTY, les IF aussi.
Tout simplement parceque on peut imaginer des données qui sont initialement
affichées dans un tableau, avec donc des TR et des TD etc etc.
Mais supposons que le changement de graphisme impose de ne plus utiliser un
tableau mais par exemple de les afficher betement les uns en dessous des
autres , ou les imbriquer dans des UL et LI (ou autre peu imlporte)...
Il me semble évident qu'il ait besoin de comprendre le fonctionnement de la
boucle pour savoir où placer exactement les nouvelles balises.
De même si les nouveaux besoins de la charte impose de mettre en rouge le
prix d'un produit s'il dépasse un certain seuil par exemple, alors mieux
vaut pour lui qu'il connaisse le IF pour pouvoir choisir la couleur à
afficher.
Ainsi le développeur n'a pas à mettre son nez dans les templates.
Il ne me semble pas insurmontable pour un infographiste de deviur comprendre
un bête foreach ou un bête IF. (d'ailleurs, d'expérience, les info
connaissent toujours ca de nos jours ou en tout cas si ce n'est pas le cas,
sont bien content de l'apprendre). On ne lui demande pas de devenir
développeur, c'est juste 2 ou 3 instructions à comprendre.
Evidemment, si l'on pense que le boulot d'un infographiste c'est juste de
changer la couleur rouge par la couleur bleue là c'est différent ;-)

Avatar
WebRod

Pour un site où tu vois vraiment l'utilité des css, vas voir le classique
:
http://www.csszengarden.com/tr/francais/
Le nombre et la variété des présentations est vraiment impressionnante. Le
code html est toujours le même.


beurk, attention je vais être mechant (et surtout HS avec mon propre
thread!!)
csszengarden m'a fait le même effet que les différents moteur des template:
etape 1: Ouhaouh c'est génial, c'est carrément impressionant! Je vais
analyser les sources
étape 2: oula c'est quoi cette usine à gaz pour arriver à ce resultat
étape 3: beurk, c'est du vent!

Voilà et je m'explique.
Je ne remets pas ce site en question, j'ai vu presque tous les templates, et
on en prend plein la vue.
Les types qui ont fait ca sont tout simplement des PRO! C'est INDISCUTABLE.
Des pro de CSS en tout cas.
Maintenant, essayez de faire pareil....
J'ai essayé, je m'y suis cassé les dents!
Ce site est une vitrine, un espèce de musée, mais il ne faut pas le prendre
à la lettre et il ne faut pas que ca vous monte à la tête.
Utilisez les CSS dans leurs concept est une utopie qui peut peut-être se
réaliser avec un site perso, dont les données varient peu et si on a rien
d'autre à foutre et qu'on peut se permettre de privilégier un browser d'un
autre.
Mais franchement, combien de temps faut-il pour arriver à de tels résultats
et que cela soit compatible avec TOUS les navigateurs récents?? (pour le
commun des mortels ayant tout de même de trés bonnes connaissances
informatiques).
Pour arriver à cela il faut tenir compte:
- des styles propres à chaque Navigateur
- des bugs propres à chaque navigateur (!!)
Je précise que je travaille dans un environnement professionnel, et si je
fais par exemple un site e-business je me vois mal expliqué au client que le
personnes utilisant IE n'auront pas accés à leur site ou auront un affichage
aléatoire (+de 90% des browsers) ou bien que ce seront au contraire ceux de
Netscape etc etc.
Impensable. Et je me vois mal demander des délais largement plus long pour
arriver à mes fins avec les CSS et me dire: putain je suis une bête j'ai
tout fait en CSS les gars regardez. maintenant les gars va falloir trouver
une autre bête comme moi pour maintenair les CSS....

Les CSS c'est bien, mais il ne faut pas leur en demander autant tant que
TOUS les navigateurs ne respecteront pas les règles.

Maintenat il va surement y avoir un pro des CSS qui va me contredire et
donner le lien de son site pour me "calmer". Tant mieux pour lui si c'est un
pro hyper pointu des CSS (il ne peut pas en être autrement), mais dans la
plupart des cas, un développeur de métier à suffisamment de technologies et
de langages différents à apprendre sans a devoir être absolument expert en
CSS!
Pour en revenir aux templates, j'aimerais bien savoir quel est le
pourcentage d'infographiste qui serait capable d'arriver au resultat de mon
site en utilisant QUE les CSS!!!
Alors à qui je confie mes templates pour les mettre à jour (enfin les CSS
associés aux templates)???

Les CSS m'ont écoeuré à partir du moment où je me suis rendu compte que
chaque navigateur avait sa propre liste de fonctions CSS supportées et ses
propres bugs. genre:
- alors pour faire CA tu fais COMME CA, ca va marcher avec IE mais pas avec
NETSCAPE.
- pour que ca marche aussi avec Netscape tu fais CA mais par contre ca
marchera plus vraiment bien avec IE
- donc tu modifies CA de IE COMME CA et là ca doit être bon
- euh non, attends avec Firefox par contre ca va pas marcher, alors attends
je cherche une réponse à ton problème et je te dis plus tard...

CSS= changement de couleur, changement de police, changement de taille,
gras, italique paragraphe..
Et c'est tout, et c'est déjà TRES BIEN. Et pour ca je les trouve
IRREMPLACABLE.
Pour le reste des bon vieux TABLE, TR et TD qui marchent P-A-R-T-O-U-T !
En fait quand tu passes 3 jours à essayer de faire un petit truc en CSS
compatible avec tous les browsers et que tu te rends compte que tu peux le
faire en 5 minutes chronos avec des TABLES tu oublies tous les rigolos qui
te disent que c'est de la merde d'utiliser des TABLES parceque eux-même
l'ont lu quelque part!!

http://stef.carpentier.free.fr
Ben tu vois, ton site avec IE (comme tu le dis d'ailleurs) c'est pas

terrible. Probablement pour les raisons que j'ai donné (pas assez de temps
pour le rendre compatible). Dommage de s'auto limiter par "croyance" en les
CSS.

Avatar
pollux
Bonjour,
J'ai vraiment l'impression que ces différents moteur de templates
vendent du

vent.

Rod




Je suis effectivement contre ce que le template introduise une notion de
code car les designer n'en ont cure.

j'ai développé mon propre systeme de template avec seulement des
{VARIABLE} comme ceci, et qui est largement suffisant.

le html du template est épuré.
Libre au designer d'y introduire ses class css

si j'ai des boucles à faire pour construire des tableaux je le fait dans
le php et j'introduis des class css définis avec le graphiste.

une fois que tout est finni on se retrouve le designer et moi et on
reprends toute les pages et on les modifie ensemble si besoin est.

Il ne faut pas oublier que ce que nous faisons est un travail d'équipe.

Il est illusoire de penser que chacun puisse faire son travail dans son
coin sans interaction avec l'autre.

le travail du web est un travail d'artisant comprenant plusieurs corps
de métier qui doivent se coordonner ensemble.

Enfin, c'est mon opinion.

Avatar
Bruno Desthuilliers
Bonjour,

(snip)


Cependant, si on réfléchit bien, quel est l'interêt d'utiliser ces
templates??
(snip)

Est-ce que quelqu'un peut m'expliquer pourquoi il faudrait utiliser SMARTY
par exemple ou autre chsoe de ce genre???
- Qu'est-ce que l'infographiste, le non développeur a à y gagner?
- Qu'est-ce que le développeur PHP a à y gagner??

J'ai vraiment l'impression que ces différents moteur de templates vendent du
vent.



Je suis globalement d'accord avec toi - et ce n'est d'ailleurs pas un
débat nouveau ici (même si tu le relance avec un dynamisme certain !-).

Plus exactement, je suis d'accord avec toi dans le contexte que tu
évoque (PHP + moteur de template), dans la mesure où PHP est
originellement un moteur de template, et où les 'surcouches' que j'ai vu
dans ce domaine ne m'ont pas franchement convaincu.

Dans d'autres langages, j'ai trouvé d'autres compromis intéressants.
Entre autres, Python + [TAL | nevow] ou autre "langages d'attributs" qui
se basent sur des balises HTML valides et utilisent les attributs pour
les parties dynamiques. Ex:

<table>
<tr>
<th>name</th>
<th>Phone</th>
</tr>
<tr tal:repeat="contact here/contacts">
<td tal:content="contact/name">John Doe</td>
<td tal:content="contact/phone">888.33.55.66</td>
</tr>
</table>

Mon expérience pour le moment est que les designers/intégrateurs web
(attention, je te parle de gars qui connaissent le HTML, bricolent des
squelettes spip etc, pas des infographistes purs et durs qui n'ont pas
la moindre compréhension du code HTML) comprennent très bien ce type de
langages, et que ça fonctionne très bien avec leur outil habituel (tu
peux parier ta chemise que c'est Dreamweawer).

Mes deux centimes...

Avatar
simonced
Tous les arguments se valent pas mal en affet.
Maintenant prennez en compte une donnée que je n'ai pas vu citée
encore :
Comment gérer 50 sites quand on est 2 developpeurs et 2 designers ?
Et ben dans ce cas les templates permettent de gagner un temps fou.

En nous avons encore augmenté la rapidité de travail qrâce a smarty.
Oui les graphistes se sont mis à Smarty, mais ils n'y touchent presque
pas.
En fait, ils font la maquette, et nous, les developpeurs, on vient
insérer les balises smarty dans leur HTML.
Ca nous prend 4 minutes 30 montre en main.

On gagne vachement de temps.
Surtout que smarty est lourd, mais complet, par exemple, il permet de
faire un traitement cote templatate plutot que cote PHP.

Vous allez me dire que c'est ridicule ? Non pas tout à fait.
Nous avons des sites qui ont plusieurs "peaux" et des affichages
differents. Il est necessaire d'afficher la données formattée d'une
façon ici, et d'une autre façon là ! Hors de question de retoucher /
dupliquer du PHP, bien trop source d'erreur, mais en changeant
simplement la template, et les "petits" bouts de code dedans, c'est un
régal !

Quant aux CSS, c'est vrai que c'est pas facile à prendre en main, mais
il faut se dire que pas mal de gens sont encore en RTC ou ADSL pas
rapide, et utiliser les CSS plutot que des tables, rends le HTML plus
léger pour les navigateurs. Maintenant, les tables sont toujours
indispensables dans beaucoup de cas. Tout dépends de ce que l'on veut
afficher, et son comportement suivant les differentes résolutions des
clients.

Il doit y avoir d'autres arguments, mais je suis un peu naze pour en
trouver d'autres.
Avatar
WebRod
"simonced" a écrit dans le message de news:

Tous les arguments se valent pas mal en affet.
Maintenant prennez en compte une donnée que je n'ai pas vu citée
encore :
Comment gérer 50 sites quand on est 2 developpeurs et 2 designers ?
Et ben dans ce cas les templates permettent de gagner un temps fou.


Personne n'a vraiment remis en question les templates!!!!!!
Bien au contraire.
C'est juste qu'il ne faut pas confondre 2 choses:
1- séparer le développement de la présentation
2- séparer le php du html

Les templates correspondent avant tout au cas 1.

En nous avons encore augmenté la rapidité de travail qrâce a smarty.
Oui les graphistes se sont mis à Smarty, mais ils n'y touchent presque
pas.
En fait, ils font la maquette, et nous, les developpeurs, on vient
insérer les balises smarty dans leur HTML.
Ca nous prend 4 minutes 30 montre en main.


Ben oui mais en utilisant smarty tu cherches desesperemment a séparer php de
HTML. Ce qui n'est pas le but des templates.
Utiliser un template OUI, mais quitte à inserer un peu de code, autant
utiliser du php (avec uniquement les instructions de bases IF , foreach et
echo)

On gagne vachement de temps.
Surtout que smarty est lourd, mais complet, par exemple, il permet de
faire un traitement cote templatate plutot que cote PHP.


Et pourquoi ne pas utiliser du PHP coté template????
C'est justement la question du thread.


Vous allez me dire que c'est ridicule ? Non pas tout à fait.
Nous avons des sites qui ont plusieurs "peaux" et des affichages
differents. Il est necessaire d'afficher la données formattée d'une
façon ici, et d'une autre façon là ! Hors de question de retoucher /
dupliquer du PHP, bien trop source d'erreur, mais en changeant
simplement la template, et les "petits" bouts de code dedans, c'est un
régal !


Ben changer les petits bouts de code (langage propriétaire SMARTY) ou
changer les petits bouts de code (langage PHP) tous 2 uniquement dans les
templates bien sur, je ne vois pas la différence!!!!!!
Meme risque de bug!!!!


Quant aux CSS, c'est vrai que c'est pas facile à prendre en main, mais
il faut se dire que pas mal de gens sont encore en RTC ou ADSL pas
rapide,


oui la moitié de la population

et utiliser les CSS plutot que des tables, rends le HTML plus
léger pour les navigateurs.
En réalité je ne suis pas convaincu que le ralentissement des navigateurs

soit dû aux quelques octets rajoutés par la definition d'un table par
rapport à des ajouts de div, ni meme le temps de calcul necessaire au
navigateur pour formatter un table
Il faut plutot chercher du coté des images.

Maintenant, les tables sont toujours
indispensables dans beaucoup de cas. Tout dépends de ce que l'on veut
afficher, et son comportement suivant les differentes résolutions des
clients.


Yes

Rod

1 2