changelog-rev16.8 [ révision : 59 - jpb /08-11-2025 ]
(non exhaustif...)
Pour des informations complètes et détaillées visitez la page de comparaison entre cette version et la précédente :
https://github.com/npds/npds_dune/compare/v.16.4...v.16.8
Cette version est la première compatible avec php8 et mysql8 ce qui a nécessité de nombreuses corrections. Elle embarque de nouvelles fonctionnalités, corrige des bugs anciens améliore l'homogénéité des interfaces, et renforce la documentation et les traductions. L'implémentation d'un déployeur et de son système de mise à jour de la bd rendra désormais la tâche plus facile pour effectuer les mises à jour des portails npds et les installations neuves...
- support PHP5 non maintenu ...
- abandon support de l'extension mysql de PHP (now only mysqli)
- php8++ mysql8 :
➤ modification de REGEXP dans les requêtes
➤ champs trop courts dans la base table session champ `uri` et `agent` : suite utf8
➤ modification de l'ordre des arguments requis/optionnel dans les fonctions
➤ typage argument dans mktime()
➤ optymysql.php : correction de l'envoi d'une valeur (vide) pour un type decimal non null dans la table
➤ remplacement de nombreux settype() incorrects ...
➤ remplacement de la fonction formatTimestamp() dans le mainfile.php par la fonction formatTimes() et donc des ses appels dans de nombreux fichiers et métamot. Cette fonction est soutenue par une deuxième fonction de traitement des dates getPartOfTime() (dans le mainfile.php) qui va permettre de manipuler encore plus finement les dates. Ces modifications ont été nécessaires à cause de l'évolution des fonctions de date de PHP. Elles permettent aussi la suppression de plusieurs fonctions : formatTimestampShort() dans modules/links/links.php ,.
➤ abandon utf8_decode (auth.inc.php user.php)
- update dépendances :
➤ version (licence du core) GNU 2 ==> 3
➤ bootstrap 5.3.7
➤ openlayers 10.6
➤ geocoder 4.3.4
➤ prism 1.30
- évolutions :
➤ Implémentation d'un déployeur (pour le déploiement et la mise à jour des portails) complété par un migrateur de la base de données (doc : voir manuels maj.html)
➤ pour les groupes : création d'un bloc des groupes actifs (avec membres) et possibilité aux utilisateur de faire une demande d'adhésion. Et de la gestion de ces demandes par les admins (avec une nouvelle fonction d'alerte).
➤ envoi d'email : intégrations de la librairie PHPmailer pour la gestion d'envoi des mails ce qui permet entre autres d'utiliser le protocole SMTP(S), envois avec authentification ... et côté code beaucoup de possibilité d'améliorations et de simplification
➤ suppression de l'option d'envoi des mails avec la fonction email() devenue obsolète
➤ envoi d'email au superadmin lors de la soumission d'un nouveau commentaire (dépendant du choix dans les préférences "Notifier les nouvelles contributions par E-mail" ($notify))
➤ ajout avatar dans le chat ...
➤ metatags : suppression du support charset iso-8859-1 dans les metatags, mise à jour automatique de l'attribut lang en fonction de la langue choisie...
➤ metamots : suppression MM_np_twi_Us()
➤ modification de la fonction userpopover() qui permet dorénavant d'avoir un avatar seul ou un avatar et son popover et suppression du "selfcall" de la fonction ...
➤ geoloc : transfert du georeferencement des ip dans un fichier dédié (geoloc_refip.php) en lieu et place du code qui se trouvait dans le mainfile
ajout d'une clef pour le provider extreme-ip-lookup
remplacement des provider de fond de carte : stamen > stadia Maps ; bing > azure maps
doc et traductions
➤ administration des logs et sessions (admin/sessionlog.php) : ajout de deux commandes (+ doc et traduction)
une pour bannir l'ip à partir de la liste des sessions.
l'autre pour déconnecter toutes les ip (en vidant la table des session)
➤ searchbb.php amélioration interface avatar dans tableau, ajout des critères (et non des valeurs par défaut) dans le formulaire après sa soumission
➤ reviews.php : rajout d'un tri par ID ...
➤ mainfile.php : prototype de blocage des robots irrespectueux .. limitant à 5 connexions simultanées par robots ...
➤ administration LNL : amélioration interface (select au lieu d'input) et contrôle des entrées, ajout tooltips explicatifs
➤ administration préférences : ajout de l'activation des logs mysql. (documenté dans manuels config.html)
➤ ajout du support pour le format d'image .webp
➤ ajout support audio et video mp4 et svg dans forum upload
- bug track :
➤ nombreuses corrections : var $NPDS-PREFIX manquante, non globalisée ou globalisée inutilement. Ces erreurs impactaient surtout les sites à tables préfixée (requêtes sql défaillantes)
➤ missing globalisation var $NPDS-PREFIX dans réseaux sociaux.
➤ implémentation dataimagetofileurl() dans les minisite
➤ création du répertoire utilisateur (si n'existe pas) à partir de l'édition du journal utilisateur ...
➤ tarteaucitron NO gtag @ start (minisite et core)
➤ deux each oubliés dans filemanager.php et class.navigator.php
➤ suppression du fichier kernel dans le dossier _module_template
➤ terme de recherche requis dans le bloc de recherche
➤ amélioration de l'implementation de la construction de link rel canonical ...
➤ admin download : interface et contrôle formulaire
➤ bloc de choix langue dispo que si multilangue est activé
➤ correction metamot login (pas d'affichage du formulaire quand on est déjà connecté en user)
➤ correction metamot member : ajout condition sur existence de $cookie[1] pour la définition de $username
➤ correction bug à l'installation du bloc note quand la table a déjà été créé par un blocnote groupe ...
➤ correction bug Requete sql insert des options défaillante quand sondages avec noms identiques
➤ correction typo on loading attributs values "lazy" with only one z !....
➤ correction il n'y avait pas d'appel de la css du framework quand thème unskinable par défaut
➤ correction du contrôle sur la variable $submiS dans newtopic.php qui générait une erreur ...
➤ correction typo sur la variable $time dans modules/links/links.php
➤ correction lors de la recherche dans utilisateurs la variable $t présente dans les url de pagination non défini et non nécessaire : rectification des deux urls (search.php)...
➤ correction (searchbb.php) fonctionnement chaotique entrainant des constructions de requêtes sql non conformes
➤ correction (mainfile.php) fonction req_stat() surincrémentation du compteur + libération mysqli après les requêtes
➤ correction (reply.php, replyH.php, viewtopicH.php) erreur quand $userdata non défini (user non connecté...)
➤ correction lnl bug sur le "each déguisé" (php8) et remplisage d'un tableau non défini.. qui affectait l'envoi vers groupe
➤ protection variable : \$ dans le commentaire/doc (overload.php)
➤ correction clef de tableau inexistante dans cache.class.php on line 73
➤ correction admin/die.php double inclusion mainfile
➤ correction bug lors de l'installation automatique d'un module sans table mais avec une interface admin
➤ correction bugs quand article non publié en index avec catégorie autre que article ...
- thèmes
➤ ajout d'un attribut data-bs-theme à la balise body (themes-dynamic/header.php)
➤ ajout d'une variable dans le thème (/themes/montheme/theme.php) permettant le choix de l'apparence du thème ("light" "dark" "auto") si "auto" le theme sera affiché avec la version dark ou light de la css de bootstrap (default ou skin xxx) ...
➤ ajout d'un script js (npds_adapt.js) pilotant les modes sombre/clair des thèmes.
➤ ajout d'un switcher pour la visualisation sombre/clair dans /themes/_skins/default/ et dans le block Skin viewer ...
➤ Ceci permet donc un passage automatique du mode clair au mode sombre de votre thème en fonction du paramétrage de votre média (système/navigateur)...
- Documentation
➤ manuels administration : mise à jour et restabilisation (suite à l'implémentation de navigation transversale entre les manuels), interface, traduction. (encore en travaux ...)
➤ intégration de doc admin de module core dans la navigation transversale des manuels (geoloc)
- inside code :
➤ suppression/nettoyage (global, paramètre, config) de la variable $site_font
➤ condition simple en écriture ternaire
➤ corrections, suppressions ou ajouts de sql_free_result() quand nécessaire ...
➤ désimplémentation de la constante cur_charset ...
➤ renforcement et correction de la lib mysqli.php
➤ réécriture de js en jquery vers js pur ...(en cours)
➤ meilleure indentation finale du code source (autant que faire se peut vu la multitude des contextes ...)
➤ synchronisation des timezone de php et mysql ...
- inside archive
➤ suppression de fichiers images non utilisés