Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2723 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] Templates

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Templates

n°70812
ethernal
Chercheur de vérité...
Posté le 08-11-2001 à 18:25:10  profilanswer
 

Pendant que je pensais à recoder mon site web avec des templates, il me survint alors une question :
 
comment faire pour tout ce qui est affichage de plusieurs éléments issus d'une BD et dont l'affichage est répétitif ?
 
ex dans un forum :  
- l'affichage de l'entête des forums disponibles  
- l'affichage des entêtes de messages
je m'explique pour tout ceux qui n'auraient pas compris ou je voulais en venir ;)
en gros une page de forum ressemble à ça
<Table>
<TR> <TD>{NOM}</TD> <TD>{DATE}</TD> <TD>{SUJET}</TD> </TR>
<TR> <TD>{NOM}</TD> <TD>{DATE}</TD> <TD>{SUJET}</TD> </TR>
<TR> <TD>{NOM}</TD> <TD>{DATE}</TD> <TD>{SUJET}</TD> </TR>
</table>
 
on ne connait pas le nombre de lignes du tableau à afficher :(
et même si on le connaissait, ce n'est que répétition de l'affichage d'une même ligne de table dont le contenu change.
 
donc comment s'en sortir ? je pensais à ça, mais ça me semble lourd :(
 
un template page.tpl qui contient la structure d'une page de base
//page.tpl----------------------------------------
-----
<HTML>
<HEAD>
{HEADER}
</HEAD>
<BODY>
<H1> {TITRE} </H1>
<CENTER>
<TABLE>
{ENTETEMESSAGE}
</TABLE>
</CENTER>
</BODY>
</HTML>
//-----------------------------------------------------
 
//un template pour l'entete des messages message.tpl
//entetemessage.tpl------------------------------------------
<TR> <TD>{NOM}</TD> <TD>{DATE}</TD> <TD>{SUJET}</TD> </TR>
//-----------------------------------------------------
 
et une page qui assemble le tout:
//index.php--------------------------------------------
...includes...
//remplissage du template des entêtes du forum
template= new template("emplacement/entetemessage.tpl" );
sqlquery= "select * from forum ...";
...
$entetes_forum= "";
while ($row= mysql_fetch_array($...)) {
  $entetes_forum.= $template->parse($row);
}
 
//remplissage du template de la page
template= new template("emplacement/page.tpl" );
...
$messages_forum= "";
echo $template->parse(array("TITRE"=>"monTitre","E
NTETEMESSAGE"=>"$entetes_forum",...));
...
//------------------------------------------------
-----
 
Qu'en pensez vous ??
Comment faites vous ?

mood
Publicité
Posté le 08-11-2001 à 18:25:10  profilanswer
 

n°70813
sisicaivra​i
Life is Beautifullll
Posté le 08-11-2001 à 18:30:54  profilanswer
 

:hello: Ethernal
 
moi, je fais ma requete, et pis un  
while(list($auteur, $message,...)=mysql_fetch_row($result))
affichage du topic
 
je sais pas si j'ai répondu a ta question...  :??:

n°70815
ethernal
Chercheur de vérité...
Posté le 08-11-2001 à 18:37:05  profilanswer
 

sisicaivrai>  :hello:  
bha c'est ce que j'ai pour l'instant, mais je peux pas mettre ça dans un template ;) vu que les templates sont destinés aux graphistes (si j'en ai un sous la mains un jour ;) :lol: )
 
d'autre part, si j'utilise des templates, mais que je ne permet pas aux graphistes de modifier le style d'affichage des entêtes des messages, autant pas faire de template, faut rester logique avec ce que l'on fait ;)

n°70817
sisicaivra​i
Life is Beautifullll
Posté le 08-11-2001 à 18:39:48  profilanswer
 

comment j'ai répondu a coté j'avais pas relevé le mot important:template (lu en diagonale:D)... ;)
 
daisolai, je vois pas trop comment t'aider  :(

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

n°70818
krolours1
Posté le 08-11-2001 à 18:44:17  profilanswer
 

heu oui on fait à peu près comme tu as fait dans ton 1er msg

n°70819
ethernal
Chercheur de vérité...
Posté le 08-11-2001 à 18:47:59  profilanswer
 

sisicaivrai a écrit a écrit :

comment j'ai répondu a coté j'avais pas relevé le mot important:template (lu en diagonale:D)... ;)
 
daisolai, je vois pas trop comment t'aider  :(  
 
 




 
pas de problème, ça m'arrive aussi ;)

n°70820
ethernal
Chercheur de vérité...
Posté le 08-11-2001 à 18:49:20  profilanswer
 

krolours1 a écrit a écrit :

heu oui on fait à peu près comme tu as fait dans ton 1er msg  




 
à peu près ça veut dire quoi exactement ?
pcq vais me rerouver avec des variables remplies un max si mes pages sont grosses... ça risque pas de poser des problèmes ?

n°70886
krolours1
Posté le 08-11-2001 à 22:50:57  profilanswer
 

je disais à peu près car j'ai lu le code très rapidement :)
 
maintenant il me vient un doute :)
c quoi ta lib de templates ??

n°70891
ethernal
Chercheur de vérité...
Posté le 08-11-2001 à 23:01:14  profilanswer
 

c vrai que j'ai fait un peu long là ;) dsl
 
Je me suis fais une classe de template pas bien élaborée.
Elle lit et stocke le contenu d'un template dont on lui donne l'origine.
Elle retourne le contenu modifié en fonction du tableau passé en paramètre.  Ce tableau contient le nom de la variable en clé et le contenu de celle-ci.
En fait ça ressemble à FastTemplates (ou un truc du genre).
 
Mais le principe d'avoir plusieurs templates "inclus" est-il bon ? (page.tpl contient implicitement entete_forum.tpl)

n°70904
xmulder
un peu plus au nord...
Posté le 09-11-2001 à 07:19:52  profilanswer
 

euh... c quoi un template? :ange:  
 
-pas taper hein?-


---------------
1km = 1024m
mood
Publicité
Posté le 09-11-2001 à 07:19:52  profilanswer
 

n°70926
krolours1
Posté le 09-11-2001 à 10:17:06  profilanswer
 

ethernal a écrit a écrit :

 
 
Mais le principe d'avoir plusieurs templates "inclus" est-il bon ? (page.tpl contient implicitement entete_forum.tpl)  




 
Ben oui c'est tt à fait normal
sur certaines pages j'ai 15 templates différents

n°70986
ethernal
Chercheur de vérité...
Posté le 09-11-2001 à 15:15:19  profilanswer
 

ou la la 15 templates ;)
tu me rassures là   :)  :)  
pcq je me disais aussi que pour chaque formulaire il me faudrait une template aussi...
 
Est-ce que ça n'utilise pas trop de ressources cpu et mémoire ?
 
Que se passe-t-il si un message d'un forum ou autre contient un text du genre "{FOOTER}" (à cause d'un utilisateur en manque de tests) et que cette variable est remplacée par après par sa valeur ? hum hum ?
le seul moyen est-il de remplacer le contenu à risque en dernier ? ou bien il y a d'autres façons de faire ?

 

[edtdd]--Message édité par ethernal--[/edtdd]

n°70995
krolours1
Posté le 09-11-2001 à 15:36:54  profilanswer
 

ethernal a écrit a écrit :

ou la la 15 templates ;)
tu me rassures là   :)  :)  
pcq je me disais aussi que pour chaque formulaire il me faudrait une template aussi...
 
Est-ce que ça n'utilise pas trop de ressources cpu et mémoire ?
 
Que se passe-t-il si un message d'un forum ou autre contient un text du genre "{FOOTER}" (à cause d'un utilisateur en manque de tests) et que cette variable est remplacée par après par sa valeur ? hum hum ?
le seul moyen est-il de remplacer le contenu à risque en dernier ? ou bien il y a d'autres façons de faire ?  
 
 




 
1. Pour les ressources, je me suis pas posé la question étant donné le confort de dev et la clarté du code que les templates apportent. Je pense que ce n'est pas significatif.
Par contre je pense que tu devrait utiliser 1 lib existante plutot que d'écrire la tienne, il en existe des très performantes qui font du cache, de la compression ect..
 
2. Avec fastTemplate, ça peut pas arriver il me semble (je suis pas super sur non plus :))

n°70997
ethernal
Chercheur de vérité...
Posté le 09-11-2001 à 15:45:05  profilanswer
 

merci beaucoup pour tes réponses krolours1  :jap:  
 
c'est vrai qu'avec les templates on arrive à une distinction totale du code et de l'html et ça j'aime :love:  
 
je vais suivre tes conseils et utiliser FastTemplates qui m'a l'air correct.
 
encore merci ;)

n°71054
ethernal
Chercheur de vérité...
Posté le 09-11-2001 à 18:34:28  profilanswer
 

pour ceux que ça intéresse :

Citation :


Speed discussion
"Ok," you might say, "that is all fine and nifty. But doesn't it impact the speed of my web site?"  
 
Yes, your site will probably become faster. There is a simple reason for that: Because you as the coder are focused on designing your application and building code, your code will be more efficient, handling the same task easier and quicker. So, you might add just another reason to the above list why you should consider using FastTemplate in your next PHP project.  


issu d'un article de phpbuilder http://www.phpbuilder.com/columns/ [...] hp3?page=1


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] Templates

 

Sujets relatifs
PHP <a href=renvoivaleur.php?valeur2= $valeur>PHP - tables
[PHP] : comment inclure un target dans un HEADER LOCATION .... ??[ PHP / MySQL ] INSERT multiple
Pour un GROS NUL EN PHPPHP PROBLEME AFFICHAGE VALEURS (<ESPACE> et ')
[PHP] Include avec paramètres[PHP] Question sur commande/script pour....
[PHP] mise à jour d'une Base de Donnée[PHP + COOKIES] : comment tester l'existence d'un cookie ?
Plus de sujets relatifs à : [PHP] Templates


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR