[DEVELOPPEMENT] Nouveau forum

Projet de forum

En ce 21 janvier, j'ai décidé de démarrer un projet complètement fou auquel je réfléchis depuis quelques mois, celui de développer la prochaine version du forum Excel-Pratique en partant d'une page blanche

Bien que l'aboutissement de ce projet soit encore très incertain tellement il risque d'être long et complexe à développer, j'ai décidé de partager cette aventure avec vous en publiant chaque jour (ou presque) un bref résumé de l'avancement du projet à la suite de ce post.

Pour tout commentaire, question ou remarque, je vous invite à le faire à la suite de ce second post : discussions-nouveau-forum-135982

Pourquoi un forum fait maison ?

  • Pour créer un forum plus léger et plus rapide.
  • Pour ne plus dépendre d'un CMS et ne plus avoir à faire de mises à jour du CMS (en particulier les mises à jour majeures qui peuvent demander beaucoup de travail, avec le risque de ne plus pouvoir utiliser certaines extensions telles que les sujets résolus, les "j'aime", etc).
  • Pour avoir un compte unique pour l'ensemble du site (par exemple, le compte pour la section des téléchargements n'est pour le moment pas le même).
  • Mais surtout pour avoir la "maîtrise technique" du forum, autrement dit, pouvoir potentiellement tout personnaliser / ajouter / modifier / supprimer / ... Par exemple :
    Maintenant, pour marquer le sujet comme étant résolu, il est possible de cliquer sur le bouton résolu d'un seul post et je ne peux pas le changer / avec un forum maison, il serait possible de changer le fonctionnement des sujets résolus, en autorisant par exemple le marquage de plusieurs posts ayant contribué à la résolution (et même en empêchant l'auteur du sujet de marquer ses propres posts comme c'est souvent le cas actuellement).
  • Maintenant, les contributeurs de la section des téléchargements peuvent mettre un lien manuellement dans leur profil vers leur page d'auteur et c'est tout / avec un forum maison et un compte unique, il serait possible de lister par exemple les applications du contributeur directement sur sa page de profil sur le forum.
  • Bref, ce ne sont que quelques exemples mais ça va rendre possible beaucoup de choses qui ne l'étaient pas avant

Complexité du projet et incertitudes

Le projet est complexe parce que développer un forum avec toutes ses fonctionnalités est forcément long et compliqué ...

Mais en plus il va falloir repenser complètement la base de données, récupérer chaque donnée (utile) dans la BD actuelle (qui fait plus de 1.9go, 74 tables pour 3.6 millions d'entrées), la traiter si nécessaire et l'insérer ensuite dans le bon champ de la bonne table de la nouvelle BD.

Pour compliquer encore les choses, il faudra fusionner les comptes du site avec ceux du forum (il faudra donc traiter les nombreux utilisateurs différents avec un même ID et inversement des utilisateurs présents sur les 2 BD mais avec des ID différents).

A côté de ça, la partie écriture/édition sera aussi très complexe car les posts enregistrés dans la BD sont pleins de balises de toutes sortes adaptées au système de mise en forme d'un forum de type phpBB ... Il faudra donc traiter chacun des >816'000 posts du forum pour les rendre compatibles avec le futur éditeur de post

Sans compter la gestion des pièces jointes existantes et futures ...

Bref ...

D'où quelques incertitudes à propos de l'aboutissement du projet tellement il est complexe

Notez que ce projet de forum n'aurait jamais pu démarrer si je n'avais pas préalablement effectué un immense travail de fond en réécrivant totalement le backend du site Excel-Pratique (forum non compris).

Quelques autres infos en vrac

  • Le design du site sera sensiblement plus moderne que la version actuelle (bien que j'avais déjà fait un gros travail là-dessus).
  • Le profil du posteur passera du côté gauche du message.
  • L'éditeur de texte sera de type wysiwyg (What You See Is What You Get).
  • Je trouve le système de MP actuel inutilement complexe et plein de fonctionnalités superflues, soyez certain qu'il va être complètement repensé. Quant aux >85'000 MP existants qui alourdissent inutilement la BD (dont certains depuis 2005), ils ne seront pas conservés (pensez donc à faire une copie de ceux qui vous sont utiles).
  • Puisque je vais être amené à tout développer, je vais donc avoir l'occasion de repenser le fonctionnement de beaucoup de choses, attendez-vous à du changement
  • Je vais malgré tout chercher à conserver bon nombre d'éléments existants pour ne pas trop vous dépayser (comme par exemple les rangs et les couleurs des membres).

Explications à propos de certains changements

Je vais ajouter juste au-dessous des informations à propos de certains changements apportés par la future version (ce premier post sera donc modifié régulièrement).

Titre des posts

Les titres des sujets seront plus "propres" grâce à une nouvelle fonctionnalité qui va automatiquement les modifier. En voici quelques exemples :

besoin d'aide code vba svp ! => Code VBA (mais refusé car trop court)

besoin d'aide svp ! => titre refusé

Besoin d'adapter un code VBA => Adapter un code VBA

CALCUL DES HEURES DE NUIT DANS UN PLANNING - URGENT SVP => Calcul des heures de nuit dans un planning

Ce traitement sera aussi appliqué aux >130'000 sujets existants lors de l'importation des données.

Sujets résolus

Les indications [résolu] contenues dans les titres des vieux sujets seront supprimées et ces sujets seront marqués comme étant résolus (comme si le bouton résolu avait été cliqué).

URLs du forum

Les URLs du forum seront modifiées (comme c'était le cas il y a quelques années, avant la version 3.2 de phpBB il me semble).

Par exemple :

https://forum.excel-pratique.com/viewtopic.php?f=2&t=135366

Deviendra beaucoup plus lisible :

https://forum.excel-pratique.com/excel/liste-degressive-135366

Code VBA

Il sera plus facile d'ajouter (correctement) du code dans un post :

jour 22 code

Plages de cellules

Il sera possible de copier-coller des plages de cellules (sans la mise en forme) directement dans un post :

table

Smilies

Tous les smilies actuels seront remplacés par des emojis bien plus modernes :

jour 21

Les 3 principaux smilies "avec pancarte" seront conservés et rafraîchis :

jour 24

Sujets résolus

La fonctionnalité "résolu" est bien sûr conservée, avec en plus :

  • la possibilité de marquer plusieurs posts comme étant la solution
  • une meilleure mise en évidence des solutions
  • l'impossibilité de marquer ses propres posts comme étant la solution (sauf si aucune autre réponse)

Sujets sans réponse

Les sujets seront désormais considérés "sans réponse" tant qu'un autre membre n'y aura pas répondu (pour éviter de considérer les relances ou les ajouts d'informations comme des réponses).

J'aime => votes

Les "j'aime" seront remplacés par un système de vote qui permettra en plus de mettre en avant les posts les plus utiles dans les résultats de recherche (plus de détails).

Coloration du code

Par défaut, le code sera coloré de la même manière qu'actuellement, mais il y aura en plus la possibilité de choisir parmi 5 différentes colorations syntaxiques (2 claires + 3 sombres) depuis vos préférences de compte pour changer l'apparence des codes sur l'ensemble du site. Par exemple :

coloration

Jour 2

Création des premiers fichiers + récupération de certains éléments du header (partie supérieure du site) :

jour 2

Jour 3

Récupération des CSS du site + mise en forme + création de la page index + récupération des toutes premières données de la base de données de test :

jour 3

Pour obtenir une base de données "propre" à la fin, je ne vais pas chercher à modifier la BD existante (qui est pleine de données inutiles), je vais plutôt extraire uniquement les données utiles, les traiter (lorsque ce sera nécessaire) puis les insérer dans une nouvelle BD à la structure complètement différente.

Tous les tests sont effectués actuellement en local sur une sauvegarde de décembre.

Pour éviter de perdre des mois de contenus lorsque le nouveau forum sera prêt, il me faudra donc recommencer TOUTES ces étapes en utilisant cette fois la base de données la plus récente (je dois donc coder chacune de ces étapes pour pouvoir les ré-exécuter ensuite le jour J).

Jour 4

Traitement des données et mise en forme de la page index :

jour 4

Jour 5

Création de la page qui liste les sujets d'un forum + récupération des données de la base de données de test + mise en forme + création de la pagination :

jour 5

Jour 6

Création de la page d'un sujet + récupération des données de la base de données de test (uniquement celles des posts) + mise en forme :

jour 6

Développement d'une fonctionnalité pour "nettoyer" les titres des sujets, pour obtenir par exemple :

besoin d'aide code vba svp ! => Code VBA

besoin d'aide svp ! => titre refusé (pour les futurs sujets)

Besoin d'adapter un code VBA => Adapter un code VBA

CALCUL DES HEURES DE NUIT DANS UN PLANNING - URGENT SVP => Calcul des heures de nuit dans un planning

Ce traitement sera aussi appliqué aux >130'000 sujets existants lors de l'importation des données.

Jour 7

Début du travail sur la récupération des données des utilisateurs et sur la fusion des 2 comptes (celui du site + celui du forum, l'objectif étant d'avoir un compte unique pour l'ensemble du site).

Jour 8

Récupération des principales données des utilisateurs + travail sur la fusion des 2 comptes + affichage des noms des utilisateurs avec les bonnes couleurs :

jour 8

Jour 9

Affichage des premières données des membres à gauche des messages + intégration des avatars (et des "avatars" par défaut) + travail de mise en forme CSS :

jour 9

Jour 10

Je m'attaque aujourd'hui à un point très important : l'éditeur de texte (l'objectif étant d'avoir un bel éditeur wysiwyg, pour votre plus grand bonheur ).

Du choix de l'éditeur de texte vont dépendre beaucoup d'autres choses comme :

  • le mode de balisage des posts dans la BD
  • le choix de la police pour les icônes
  • la méthode pour ajouter des PJ
  • etc.

D'où un travail sur l'intégration d'un éditeur assez tôt dans le projet ...

J'ai beaucoup réfléchi sur ce point (et fais beaucoup de recherches) et j'ai finalement décidé d'intégrer un éditeur tiers payant (au lieu d'en développer un moi-même ou d'opter pour un éditeur gratuit) dans le but d'avoir un éditeur wysiwyg au top (qui a été testé et peaufiné depuis des années)

Ça va néanmoins demander un gros travail d'intégration pour le personnaliser et ajouter les mises en forme utiles ...

Jour 11

Travail d'intégration de l'éditeur sur une nouvelle page + début du paramétrage et de la personnalisation de l'éditeur :

jour 11

Jour 12

Travail de fond lié à différents fichiers JS du site ...

Jour 13

Travail en rapport avec les futures icônes du forum, en particulier celles des boutons de l'éditeur de texte :

jour 13

Jour 14-15

Modifications et ajouts de boutons (et les fonctionnalités qui vont avec) à l'éditeur de texte :

jour 15

Jour 16

Intégration de l'éditeur de texte dans un formulaire :

jour 16

Jour 17-18

Développement de la fonction de traitement et de balisage des posts (pour retirer les données superflues ou non autorisées et réduire le poids des posts dans la BD).

Jour 19-20

Suite du développement de la fonction de traitement et de balisage des posts + création de la prévisualisation d'un message (à laquelle j'ai ajouté un profil d'exemple pour obtenir la même largeur que lorsque le post sera publié).

Pour mieux visualiser le changement positif apporté par le nouvel éditeur, voici un avant/après d'un post avec son aperçu au-dessus :

editeur avant editeur apres

Jour 21

Travail en rapport avec les futures smilies emojis du forum :

  • recherche d'un pack d'emojis
  • sélection d'un peu moins de 200 emojis parmi plus de 3000
  • personnalisation des couleurs de certains emojis
  • début du travail d'intégration des emojis dans l'éditeur
jour 21

Jour 22

Suite du travail d'intégration des emojis à l'éditeur + ajout de la coloration syntaxique du code.


Pour entrer du code, il suffira de cliquer sur le bouton "code" et de coller son code à l'intérieur :

jour 22 code

Le code sera ensuite ajouté comme ceci (et coloré dans l'aperçu) :

jour 22

Jour 23

Travail de fond lié au balisage (notamment sur les balises pouvant être imbriquées comme les citations).

Rechercher des sujets similaires à "developpement nouveau forum"