Pourquoi vous devriez vous détacher du phpbb2
Ou encore : Pourquoi ne pas utiliser les tableaux HTML pour faire de la mise en page.
Ce qui mâamĂšne Ă rĂ©diger ce post, câest une question qui a Ă©tĂ© posĂ©e sur le Discord des Rpgistes.Â
đŹ C'est vraiment mieux de faire des forums sur ModernBB plutĂŽt que sur phpBB2 ?
Sâen est suivi cette discussion :Â
- Personne 1 : phpBB2 ça pue, y'a trop de tableaux.
- Personne 2 : Mais les tableaux je les connais, je les aime, je les maĂźtrise. (...) Jâsuis toujours restĂ© sur phpBB2 et j'ai jamais eu le besoin d'en bouger.
- Personne 3 : Mais Ă part les tableaux, y a vraiment quoi de diffĂ©rent ? On peut vraiment faire plus de choses sur ModernBB ou au final ce sont les mĂȘmes possibilitĂ©s sauf que ModernBB est plus moderne que phpBB2 ?
- Personne 1 : phpBB2 devient obsolĂšte en fait, c'est une base.
- Personne 4 :Â Le souci, c'est que les codes en libre-service, c'est quasi que du phpBB2.
- Personne 3 : AprĂšs, âobsolĂšteâ, ça reste encore trĂšs Ă©vasif comme rĂ©ponse.
Du coup, jâai dĂ©cidĂ© de mettre mon grain de sel et jâai essayĂ© dâexpliquer pourquoi phpBB2 nâest pas recommandĂ© et pourquoi, au contraire, ModernBB lâest.Â
La structure de phpBB2 : les tableaux HTML
Pourquoi il ne faut pas utiliser les tableaux pour faire de la mise en page : la notion de sémantique en code
Les solutions adaptées à la mise en page : flexbox et grid
Ăa risque dâĂȘtre un peu long, mais yâa beaucoup dâimages et je vous jure que câest pas compliquĂ© đđ»
Continue Reading
â«ïžÂ LA STRUCTURE DE PHPBB2 : Les tableaux HTML
phpBB2 est codé en tableaux. En HTML, un tableau (<table>) est un élément qui sert à la représentation de données.
Pour que vous vous rendiez compte de ce que reprĂ©sente un tableau en code, on va voir ça en quelques schĂ©mas.Â
On peut le diviser en 3 parties : lâentĂȘte (Â <thead>Â ), le corps (Â <tbody>Â ) et le pied ( <tfoot> ).
Sauf que, cette division ne suffit pas.Â
Chacune de ces parties est composĂ©e de lignes ( <tr> ), qui sont elles-mĂȘmes composĂ©es de cellules ( <td> ).Â
JusquâĂ prĂ©sent, ça paraĂźt simple. Mais en fait, niveau code, ça sâalourdit trĂšs vite et ça devient rapidement le bazar. Voici un exemple de code dâun tableau.Â
Si on rĂ©capitule, dans un tableau HTML, on a :Â
<table> : le conteneur du tableau
<th> : une cellule mais spĂ©cifique au <thead> (câest pas marrant si yâa pas dâexceptions)
Et si vous ĂȘtes en train de vous dire : âce code ci-dessus doit produire un tableau de fifou tellement câest le bordel !â Et bien... Non.Â
VoilĂ ce que ce code donne âŹïž
Oui, je sais, dĂ©cevant.Â
Bref ! Maintenant, vous comprenez (Ă peu prĂšs) la structure dâun tableau en HTML.Â
Dites vous que vos forums en phpBB2 sont entiĂšrement codĂ©s en tableaux. Ăa fait beaucoup de balises.Â
Et comme Forumactif est fourbe en plus de tout ça, il ne nomme pas ses diffĂ©rentes balises ; ce qui rend la personnalisation par le CSS ultra compliquĂ©e et relou.Â
â«ïž  POURQUOI IL NE FAUT PAS UTILISER LES TABLEAUX POUR FAIRE DE LA MISE EN PAGE : La notion de sĂ©mantique en code
Je pense que je ne vous apprends rien si je vous dis quâen code, il y a le HTML et le CSS. Les deux sont indissociables mais restent complĂštement diffĂ©rents :
Le HTML sert à la sémantique. Autrement dit, il va dire au serveur web qui affiche votre page que : "ceci est un titre principal", "ceci est un paragraphe", "ceci est un header", "ceci est une barre de navigation"... Ces informations servent notamment au référencement des sites web (= faire en sorte que votre site se trouve en bonne position dans les résultats de moteurs de recherche).
Le CSS sert Ă la mise en page. = mettre telle chose en gras, en couleur, ajouter une marge, centrer...Â
Si vous avez suivi jusquâĂ prĂ©sent, vous vous souviendrez quâon a dit que les tableaux Ă©taient des Ă©lĂ©ments HTML. Donc, ils ont une valeur sĂ©mantique.
đĄ Un tableau, câest un Ă©lĂ©ment HTML qui rĂ©pertorie des donnĂ©es.Â
Typiquement, ce que fait phpBB2, câest quâil utilise les tableaux pour coder une mise en page :Â
une ligne de tableau sera le titre dâune catĂ©gorie
une autre ligne sera une sous-catégorie ; dans laquelle :
une cellule sera l'image de statut de message,Â
une autre cellule sera la description,
une autre cellule sera le dernier posteur,
Ce n'est pas correct de procĂ©der ainsi car on nâutilise pas la valeur sĂ©mantique dâun tableau (= on ne rĂ©pertorie pas des donnĂ©es).
â ïžÂ Il faut bien retenir ici que la SĂMANTIQUE est fonciĂšrement diffĂ©rente de la MISE EN PAGE.
Pour vous donner d'autres exemples de la diffĂ©rence entre sĂ©mantique et mise en page :Â
<strong> en HTML vous donnera le plus souvent du gras dans votre navigateur. Pourtant, <strong> ne veut pas dire âje mets mon texte en grasâ ! <strong> veut dire que l'Ă©lĂ©ment balisĂ© est important, donc il faut le diffĂ©rencier visuellement du reste. Les navigateurs traduisent cette importance par le gras. Mais si vous voulez mettre un Ă©lĂ©ment en gras juste pour âle styleâ, il faudra utiliser le CSS (par exemple, en rĂ©glant la valeur du font-weight).Â
<em> en HTML vous donnera le plus souvent du surlignage dans votre navigateur. Mais <em> veut dire "emphase" ; c'est-Ă -dire que vous mettez l'accent sur l'Ă©lĂ©ment que vous balisez. Si vous voulez le faire ressortir dans votre texte autrement quâavec un surlignage, vous allez utiliser le CSS (et dâailleurs, vous en faites ce que vous voulez : ça peut ĂȘtre en gras, en italique, d'une couleur ou typo diffĂ©rente... ça c'est vous qui dĂ©cidez !).
Ok mais du coup, si on peut pas utiliser les tableaux pour faire de la mise en page, comment on fait ?
â«ïž  LES SOLUTIONS ADAPTĂES Ă LA MISE EN PAGE : flexbox et grid
Pour faire de la mise en page, il faut utiliser le CSS, qui lui, est fait pour ça !Â
Les deux outils de mise en page les plus utilisĂ©s sont flexbox et grid.Â
En trÚs (trÚÚÚÚs) gros résumé :
Flexbox : pour mettre en page des composants qui remplissent la page
Grid : pour construire le gabarit général de la page
Le but ici nâest pas de vous faire un cours sur flexbox et grid (@code-labâ est la maĂźtre de grid ici, pas moi).Â
Câest un peu âcompliquĂ©â Ă saisir quand on se lance dedans, mais une fois que vous avez compris la logique, ils changent la vie. (En plus, yâa pleeeeins de jeux sur Internet pour apprendre Ă utiliser flexbox de façon ludique. Moi, câest Ă force de faire ces jeux que jâai domptĂ© la bĂȘte.)
Et pour terminer, pour rĂ©pondre Ă lâune des questions du dĂ©but de ce post : ModernBB est dit plus âmoderneâ et recommandĂ© par les codeurs dans la communautĂ© RPG justement parce quâil nâutilise pas de tableaux et il tourne nativement avec flexbox pour sa mise en page.Â
Mais je suis dâaccord avec le fait que ceux qui savent coder (me included) devraient produire davantage de codes en libre-service utilisant flexbox et grid, pour inciter ce dĂ©tachement des tableaux et vĂ©hiculer les bonnes pratiques. Les gens ont appris Ă se servir des tableaux pour coder sur les forums RPG car il nây avait que ça de dispo en libre-service Ă lâĂ©poque (et encore un peu maintenant). Ă nous de changer ça đđ»
VoilĂ Ă Ă Ă Ă câĂ©tait trĂšs long mais on mâavait demandĂ© des explications plus dĂ©taillĂ©es đ JâespĂšre ne pas vous avoir ennuyĂ©s et vous avoir appris quelque chose aujourdâhui. Si vous avez des questions ou des zones dâombre, nâhĂ©sitez pas Ă laisser un petit commentaire et jâessayerai dây rĂ©pondre au mieux đ„°
De plus, si ça vous intĂ©resse dâapprendre flexbox et grid, je serais plus que ravie de vous guider et de vous aider dans votre apprentissage alors nâhĂ©sitez pas Ă me le demander đȘđ»
Allez, je vous laisse, je vais manger maintenant đ„ đ