Mise à jour du site
Version 20.0 (V135)
Liste des versionsVersion précédente : 19.4 (V134) (26/11/2023 à 17:31)
Par Corentin (25/05/2025 à 19:22)
ProgAccess 20.0 (Mise à jour anniversaire des 10 ans)
Contexte de cette mise à jour majeure
ProgAccess atteint ses 10 ans et n'a pas reçu d'évolution majeure depuis un long moment.
De plus, depuis 2015, 2 développeurs principaux ont travaillé sur le code, avec des styles différents, repassants l'un derrière l'autre, corrigeant de petites choses à droite à gauche, etc.
Il était grand temps de nettoyer, reformater et moderniser le code, pour assurer une base technique plus lisible, propre, maintenable. Pour se faire, 2 outils de "Linting" (formatage et vérification de code) ont été mis en place, permettant par la même occasion de corriger des bugs passés à la trappe, et d'éviter de potentielles erreurs. Dans le même temps, nous avons également migrés vers un système de gestion de bases de données plus performant.
Repartant de cette nouvelle base, de nombreux correctifs ont été apportés, et des évolutions ont été réalisées pour proposer de nouvelles fonctionnalités, et cela n'est que le début d'un chantier d'amélioration du site qui va se poursuivre dans les prochains mois.
Nous sommes fiers de vous présenter, ci-dessous, l'ensemble des changements apportés à ProgAccess 20.0, publié à tous le 25 Mai 2025 dans l'après-midi, pile pour les 10 ans du site, puis aux versions correctives qui ont suivi dans les jours d'après.
Version 20.0A des 26 et 27 Mai 2025
Cette version vient corriger les bugs rencontrés après la publication de la version 20.0 et apportés de légers ajustements à cette dernière suite aux premiers retours des utilisateurs.
- Les séparateurs dans le menu sont désormais vu comme tels par les lecteurs d'écran
- Affichage du lien de notre serveur Discord dans le pied de page
- Correction du bug qui entraîné l'affichage du lien d'édition et suppression de commentaire même lorsque le visiteur n'était pas connecté ou n'avait pas les permissions requises
- Correction du téléversement des fichiers via l'admin
- Correction de la récupération des statistiques de visites du site via l'API
- Correction de l'affichage des caractères accentués des pseudos sur la liste des membres
- Redirection vers la liste complète des articles si un ID incorrect ou inexistant est passé à la page article
- Autres correctifs et retouches mineurs
Version 20.0 du 25 Mai 2025
- Nouveautés et améliorations
- Possibilité de trier les fichiers d'un article et les articles d'une catégorie
- Possibilité réservée aux membres de noter un article
- Possibilité pour les membres autorisés de voir la liste des autres membres
- À l'inscription, un bouton permet de générer un mot de passe. La fonction de génération native des navigateurs est désormais également prise en charge.
- Nouveau système pour la réinitialisation de mot de passe plus simple et sécurisé
- Support de l'authentification à 2 facteurs
- Possibilité de recevoir les notifications par mail (à activer dans le profil)
- Affichage de la description des catégories dans le menu
- Possibilité de revenir directement à la page précédente à la connexion
- Refonte du système de tickets
- Possibilité de répondre par mail
- Envoi d'une copie par défaut
- Possibilité de trier (pour les admins)
- Nouveau statut "Fermé" pour conserver un ticket en empêchant d'y répondre
- Garantie que tout le monde reçoit toujours les réponses (équipe + expéditeur d'origine
- Possibilité pour les admins de créer un ticket depuis l'administration
- Support de l'écriture en MarkDown dans les commentaires et descriptions d'articles
- Lors de l'accès à la page de la lettre d'informations, redirection sur les paramètres d'abonnement associés à l'adresse mail du compte si authentifié
- Tous les mails ont désormais une version HTML et une version textuelle et reprennent tous le même modèle
- Nouveau système de gestion des droits des admin et membres
- Les admin sont désormais informés lorsqu'un membre supprime son compte
- Le tout premier compte créé hérite désormais automatiquement du rang admin
- Toutes les publications sociales seront maintenant également envoyées sur Discord
- Automatisation du calcul des statistiques en fonction des fichiers composant le projet
- Affichage de la date de dernière traduction dans la langue courante en bas de page
- L'adresse IP des membres commentant les articles n'est plus stockée
- Animation pendant le téléversement d'un fichier dans la zone d'admin
- Correctifs
- Correction de l'affichage de la plateforme d'un fichier
- Correction de la redirection vers l'accueil lors de la sélection d'une catégorie dans le menu déroulant et de l'appui sur le bouton "Valider"
- Les membres bannis peuvent désormais accéder au formulaire de contact
- Correction de 'laffichage des dates et heures dans les langues autres que le français
- Affichage du site d'un article toujours garanti dans l'admin
- Correction de la redirection sur la liste des fichiers de l'article lors de l'ajout d'un miroir via l'admin
- Garantie que les valeurs architecture et plateforme d'un fichier ne soient plus réinitialisées par erreur, correction de leur sélection à la modification d'un fichier dans l'admin
- Correction de la suppression d'un article via l'admin
- Suppressions
- Suppression du gadget horloge et de l'option pour afficher la date et l'heure dans le pied de page
- Suppression de la traduction des fichiers depuis l'interface d'admin (Git est utilisé à la place)
- Technique
- Migration vers PostGreSQL
- Désactivation de la publication sur les réseaux sociaux en zone dev
- Vérification de zone dev toujours basé sur la fonction isDev() plutôt que la constante DEV
- Nouvelles fonctions getTeamEmails() et sendMail() pour supprimer les parties de code répliquées trop de fois
- Nouvelle clé works dans $login pour tester si un admin dispose des droits pour le bon site
- Envoi de la lettre d'informations seulement depuis le domaine de prod ou en mode debug
- Linting du code avec Rector et PHP-CS-Fixer (+CI)
- Renommage de quelques variables pour utiliser des noms anglophones
- Écriture des requêtes SQL et des mails dans des HereDoc
- Clés de configuration liées aux réseaux sociaux (publication et liens des comptes), au panneau de contrôle du serveur et au webmail rendues optionnelles
- Class CSS sr_only pour tous les éléments devant être uniquement visibles des lecteurs d'écran
- Nouvelles clé de configuration :
- MASTODON_MAX_LEN : longueur maximale d'un toot
- IMAP_INBOX : chaîne de connexion IMAP pour le bot de gestion des tickets
- TICKETS_BOT_MAIL : adresse mail du bot de gestion des tickets
- TICKETS_BOT_PSW : mot de passe du bot de gestion des tickets
- Nouveau script tasks/TicketsBot.php à exécuter régulièrement via Cron
- Schéma SQL renommé ProgAccess.sql dans le dépôt Git
- CRONTAB ajoutée au dépôt Git
- Hook de pre-commit pour automatiser la mise à jour des dates de dernière traduction ajoutée, à installer via install_hooks.sh
- Gadget infos déplacé vers gadgets/infos.php plutôt que GEOIP/infos.php
- L'API permet de récupérer les informations d'un compte en passant en paramètre POST le nom d'utilisateur (login_name) et le mot de passe (login_psw) à api/account.php. ProgAccess devient ainsi un tiers d'authentification.
- Multiples autres ajustements, corrections de bugs, et améliorations de sécurité et de performance
Et après
À court therme, nous prévoyons les améliorations suivantes, par ordre théorique d'implémentation
- Reprise de toutes les descriptions d'articles
- Distinction entre la date de publication initiale et la date de dernière édition d'un article
- Améliorer et compléter la documentation de l'API
- Terminer d'intégrer l'intégralité du site au système de traductions et reprendre l'ensemble des traductions devenues obsolètes avec le temps
- Permettre aux membres de proposer des mises à jour d'articles et des nouveaux articles
- Ajouter le support des périphériques d'authentification (Web-Authn)
Ces changements seront progressivement intégrés dans les prochaines semaines, reportez vous toujours à GitLab pour connaître les dernières améliorations.
À cette version, le code du site est composé de 170 fichiers, 15697 lignes, soit 703645 octets (687,2 ko).
Seuls les fichiers PHP, HTML, CSS, JS, XML et texte brut sont pris en compte. Les fichiers dont nous ne sommes pas les auteurs ne sont pas comptés (bibliothèques, outils), ni les fichiers dynamiques (caches générés automatiquement), ni les fichiers de traduction (ne contenant que du texte).