Chtite question de Templates VS bête tableau en PHP.

Chtite question de Templates VS bête tableau en PHP. - PHP - Programmation

Marsh Posté le 18-04-2003 à 15:26:03    

Voili, voilà... Je continue toujours vaillamment et patiemment mon forum qui commence à prendre forme.  :D  
 
J'en suis actuellement au stade où je prévois la possibilité aux possesseur du forum de pouvoir changer les différents textes présents (genre : vous avez 2 nouveaux messages), ou même karrément la langue.
 
Evidemment, la première chose à laquelle on pense dans ce cas là, ce sont les templates. Oui, mais voilà... Après quelques petites recherches, il apparait que c'est pas tip-top en matière de perfs. Or, je recherche avant tout les perfs justement.  
Je ne me suis pas fais chier à générer une fois pour toutes mes CSS via PHP + les profils des users pour foutre en place un systeme de templates hypra-lourd.  :D  
 
Donc, je me dis bêtement que la solution la plus rapide serait sans doute un bête tableau dans une page incluse du style :
 
$langue = array("vous avez","un","des","nouveau","nouveaux","message","messages" etc...
 
Puis dans la page :
 
echo $langue[1],$langue[2] etc...
Qu'en pensez vous ?


Message édité par Hermes le Messager le 18-04-2003 à 15:41:40
Reply

Marsh Posté le 18-04-2003 à 15:26:03   

Reply

Marsh Posté le 18-04-2003 à 15:40:41    

bah, alors, elle inspire personne ma question ? Pourtant je la trouve intéressante...  :ange:

Reply

Marsh Posté le 18-04-2003 à 15:43:26    

jai des fichiers de langue de type ...
 
FR.inc.php
hello = bonjour
 
DE.inc.php
hello = Guten Tag
 
que je parse pr remplir un tableau $trad
selon la langue chargée :
$trad["hello"] = "bonjour" ou "Guten Tag";
 
apres ds le code ...
<td><?=$trad["hello"]?></td>
 
et un systeme (+ou-) perso de templates pr separer le html pr le monsieur du design


Message édité par beleg le 18-04-2003 à 15:44:32
Reply

Marsh Posté le 18-04-2003 à 15:49:20    

voui, voui, c'est bien à ça que je pensais justement. Mais moi ce qui m'intéresse particulièrement, c'est justement le système du template plus ou moin perso.  :D  Dans le cadre d'un forum le plus rapide possible, ne vaut-il pas mieux laisser les :
 
 
du HTML... puis d'un coup <?php echo $langue[motx] etc... ?> ... Du HTML
 
plutôt que justement de faire appel à un système de templates (sachant que concernant le graphisme, tout est sous forme de CSS déjà (ou presque tout) et que tout est modifiable déjà via la feuille de style, et même via un formulaire qui modifie la feuille de style) ?

Reply

Marsh Posté le 18-04-2003 à 15:57:48    

y manque pas du texte ?
 
edit : ... oui HTML <?= ... ?> HTML sera le plus rapide ...


Message édité par beleg le 18-04-2003 à 16:28:45
Reply

Marsh Posté le 18-04-2003 à 16:05:51    

tableaux tableaux tableaux :love:  :love:  
 
c'est encore le meilleur compromis vitesse / maintenabilité / modification
 
perso je parse des tableaux générés via la BDD c'est achement rapide
 
(3 tableaux pour environ 350 entrées, tout ça fois 2 pour FR / US)
ça marche du tonnerre !

Reply

Marsh Posté le 18-04-2003 à 16:55:49    

Merci bien à tous les deux. Vous confirmez ce que je pensais déjà. Je vais donc pouvoir continuer sereinnement mon chti forum.
 
 :jap:  :hello:

Reply

Marsh Posté le 18-04-2003 à 18:20:57    

J'utilise aussi ce genre de tableau sur mon forum, les templates, j'ai testé, et c'est bien lourd  :D


Message édité par skylight le 18-04-2003 à 18:21:04
Reply

Marsh Posté le 18-04-2003 à 21:40:37    

J'utilise habituellement une table pour faire ça :
 


TRADUCTION
----------
[s]LABEL_CODE[/s]
[s]LANGUAGE_CODE[/s]
LABEL_TEXT


 
Puis une fonction : (ici, en ASP)
 

Code :
  1. function DisplayText(label_code)
  2.     dim rsLabel
  3.     set rsLabel = Server.CreateObject("ADODB.RecordSet" )
  4.     set rsLabel.ActiveConnection = cnx
  5.     rsLabel.Open "SELECT LABEL_TEXT FROM TRADUCTION WHERE LABEL_CODE = '" & replace(label_code, "'", "''" ) & "' AND LANGUAGE_CODE = '" & replace(session("LANGUAGE_CODE" ), "'", "''" ) & "'"
  6.     if not rsLabel.EOF then
  7.         DisplayText = rsLabel("LABEL_TEXT" )
  8.     else
  9.         DisplayText = label_code
  10.     end if
  11.     rsLabel.Close
  12.     set rsLabel = nothing
  13. end function


 
Inconvénient :
- Plus lent qu'un fichier de traduction.
 
Avantages :
- Evite de se trinballer en include un fichier de traduction qui peut être monstrueux. Sur un site qui utilise cette méthode, il fait 12 Mo ! - Du coup on l'a chargé en variable d'application, ce qui évite de le rechercher à chaque page. Par contre, on est obligé de redémarrer le site à chaque mise à jour des libellés : intervention manuelle sur le serveur -
- Gère autant de langues et de labels qu'on veut sans avoir à faire attention à quoique ce soit.
- Administrable via une interface d'administration.
- Pas besoin de toucher au code ni d'uploader des fichiers pour mettre à jour les libellés.
- Si un texte n'est pas traduit, alors on affiche son code, ce qui permet, pendant les phases de développement et de test, de voir rapidement un oubli de traduction.
- Une fois en prod, au lieu de retourner le code, on peut utiliser une traduction "standard", mettons que si l'anglais est la langue pas défaut, on peut récupérer le libellé anglais. En //, on peut loguer l'erreur ou envoyer un mail à une personne en fonction de la langue, pour la prévenir qu'un libellé n'est pas traduit.
- Permet de changer à chaud les libellés.


Message édité par MagicBuzz le 18-04-2003 à 21:42:30
Reply

Marsh Posté le 18-04-2003 à 22:23:03    

Très intéressant ton commentaire, je t'en remercie.  :jap:  
 
Pour mon forum par contre, j'évite autant que possible d'utiliser la BDD et je vais procéder par des includes.
 
Par contre, comme tu l'as souligné, pas question de se retrouver au final avec un fichier langue.php de plusieurs megas.
 
Pour cela, je fais plusieurs fichiers langues dans un dossier avec deux types de fichiers : les fichiers commun.php qui utilisent des mots se retrouvant dans toutes les pages et en plus un fichier par page pour les expressions spécifiques à chaque page.
 
En tout cas, un grand merci pour ton aide. Il est certain que dans le cadre d'un site dynamique, j'aurais procédé comme tu le conseille. Mais pour un forum ou je cherche à tout alléger au maximum, ce n'est pas possible. Pour te donner une idée de mon travail, tout ce qui concerne les caractéristiques graphique et de mise en page sont générées une fois pour toutes via php dans des feuilles de style. Les profils des users sont également générés une fois pour toutes. Comme tu peux le voir, dès que qqc peut se passer d'une BDD, je le fais. On verra au final ce qui en résultera.
 
A +  :hello:

Reply

Marsh Posté le 18-04-2003 à 22:23:03   

Reply

Marsh Posté le 19-04-2003 à 00:01:07    

Il est ou ton forum ? [:totozzz]

Reply

Marsh Posté le 19-04-2003 à 00:06:04    

Skylight a écrit :

Il est ou ton forum ? [:totozzz]


 
pas encore opérationnel, mais il avance...  :)  
 
Dès qu'il sera suffisamment fonctionnel, je vous fais signe. Pas de problème. d'ici quelques semaines j'imagine. J'ai fait tout ce qui est XHTML, génération des CSS via PHP, les profils, les tables, etc...  
 
Là j'en suis aux langues/templates + tout ce qui touche à la sécu...
 
Un point important :
 
Le forum que je prépare pourra être inclus dans une cellule d'un tableau, car toutes les CSS sont en relative et ce comporte pas de balise body.  
C'est très pratique je trouve si on veut l'inclure dans un site après.

Reply

Marsh Posté le 19-04-2003 à 00:07:10    

Quand tu parles de génération de CSS, celà veut dire que tu créé un FICHIER de css par utilisateur (et une fois suffit, selon tes dires) ?
 

Reply

Marsh Posté le 19-04-2003 à 00:09:55    

Non, l'apparence du forum est décidée par l'admin. Je vais pas recreer un phpbb ou équivalent super lourd, ni un CSS par user. Faut pas déconner quand même.
Par contre, TOUTE la charte graphique repose entièrement sur les CSS, et l'admin a à sa dispo. un formulaire qui lui permet de tout changer sans que cela affecte la BDD ou même les fichiers PHP.
;)
 
Par contre pour le profil de chaque user, je cré un fichier par user que je n'ai qu'à inclure. Cela limite énormément l'accès à la BDD.

Reply

Marsh Posté le 19-04-2003 à 00:11:57    

Héhé, au final, faut voir :)
 
Moi, toutes les informations d'un membre sont dans un n-uplet de la table users ...
Une requete, et j'ai tout. Reste plus qu'a inclure le CSS par défaut .. (et oui, moi je peux pas appliquer ton système vu que mon forum gère les multiforums, donc personnalisation en fichiers impossible)

Reply

Marsh Posté le 19-04-2003 à 00:15:49    

Skylight a écrit :

Héhé, au final, faut voir :)
 
Moi, toutes les informations d'un membre sont dans un n-uplet de la table users ...
Une requete, et j'ai tout. Reste plus qu'a inclure le CSS par défaut .. (et oui, moi je peux pas appliquer ton système vu que mon forum gère les multiforums, donc personnalisation en fichiers impossible)


 
Tu peux parfaitement avoir un CSS par forum. C'est pas compliqué. D'ailleurs, pour mon forum, j'aurais pu proposer une liste de CSS dispos ou permettre à l'admin de sauver son CSS dans une liste de CSS sans faire intervenir la BDD.
 
oopss edit :
 
Pour la 2° partie de ta réponse, c'est clair que ma soluce est impossible. trop de membres. ;)


Message édité par Hermes le Messager le 19-04-2003 à 00:17:00
Reply

Marsh Posté le 19-04-2003 à 00:20:48    

J'étais en train de me dire ...
 
Car un fichier par user, ca ferait énornement de fichiers sur ton serveur ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed