Langue
Les plus téléchargés
- 1 npds_agenda380
- 2 npds_galerie342
- 3 Programmes de Technologie 1985 MEN ...335
- 4 86-Car330
- 5 npds_annonces 317
- 6 photosize315
- 7 npds_glossaire308
- 8 npds_encapsuleur295
- 9 bootstrap.png275
- 10 superhero259
################################################################################
changelog-rev16.8 [ révision : 56 - jpb /31-10-2024 ]
(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.
- 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 ,.
- update dépendances :
version (licence du core) GNU 2 ==> 3
bootstrap 5.3.3
openlayers 9.1
geocoder 4.3.4
- évolutions :
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 ...
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
suppression du provider de fond de carte stamen
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 à 3 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)
- 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 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
- thèmes
ajout d'un attribut data-bs-theme à la balise body (themes-dynamic/header.php)
ajout d'une variable dans le thème permettant le choix de l'apparence du thème (light or dark) ainsi 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 ...)
- inside archive
suppression de fichiers images non utilisés
################################################################################
changelog-rev16.4 [ révision : 53 - jpb /05-10-2022 ]
(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.3...v.16.4
Cette version entraine de nombreuses modifications (plus de 1135 fichiers) dûes en grande partie à la mise à jour du framework bootstrap, des autres dépendances et des corrections et amélioration de la version précédente. La base de données n'est que très peu impactée, principalement sur des données (... quelques métamots). Elle fixe aussi un certain nombre de problèmes de sécurité en renforçant la protection d'accès fichiers et le filtrage des urls.
Cette version est la dernière compatible avec php5.
- update dépendances :
bootstrap 5.2.2
bootstrap-icons 1.9.1
formvalidation v.1.9.0 (lié à maj BS)
colorpicker v.3.4 (non maintenu) ==> puis remplacé par jscolor
bootstrap table 1.19.1
openlayers 6.15.1
geocoder 4.1.2
- mise à jour skin et thème : + 1 theme et 3 nouveaux skins
- validation des formulaire : formvalidation ajout rowselector (pour bon fonctionnement des icônes de validation de formulaire) .. (probablement à affiner encore)
bug track :
- correction du chemin d'accès au fichier langue pour l'aide de l'admin d'upload (typo variable)
- pic manager : correction d'une condition, celle-ci générait une erreur php dans certain cas (plus d'affichage du pic manager)
- pic manager, file manager : erreur 429 lors du traitement de dossier avec de nombreuses images (résolu partiellement le cas peut encore exister ...)
- geoloc correction : contruction des listes de choix des fonds de carte, remplissage du viewport en fonction de l'extension de la couche, openlayers updates...
- affichage correct des IPV6 dans session log
- correction de l'affichage du titre de la fenêtre du chat (affichage des entités html (renvoyées par la traduction) au lieu d'un format text ...) @phrev
améliorations :
- pic manager, file manager : mise en page et changement d'iconographie (bs webfont au lieu de font awesome)
- mise en page de formulaires
- menu utilisateur (externalisation ...)
- thèmisation (code) : possibilité d'ajouter à partir du thème une classe à "l'élément html primaire" d'un bloc
- thèmisation : simplification des dossiers thèmes ajout explicatif sur les templates html des themes dynamique
- metatag :
-- ajout de création automatique de balise meta de type og et twitter la combinaison de ces balise permet la création automatique de "card" pour différents réseau sociaux ...(à documenter)
-- ajout de l'attribut lang dans balise html
sécurité :
suite audit thanks @Nosp, renforcement de url_protect, des accès aux fichiers, et xss sur chat ...
################################################################################
changelog-rev16.3 [ révision : 46 - jpb /20-12-2021 ]
(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.2.1...v.16.3
- Corrections et améliorations
- travaux sur les traductions :
ipban, npds_twi, /admin, contact, manuels admin
- [bug] création et modification groupe
- compatibilité mysql>5 : lnl
- compatibilité mysql8 : (mot réservé rank) comment/reply.php
- compatibilité php>7.4 :
ordre des arguments implode() (savemysql.php, upload.func.forum.php)
deprecated/removed get_magic_quotes_runtime() set_magic_quotes_runtime() (grab_globals.php)
- lib mysql : arguments
- notice(s) et fonctionnement sur les affichages des contributions des anciens membres
- cohérence ancre et urls last-post => lastpost
- oubli de tin class pour tinymce dans filemanager.php
- effacement chat box seulement pour les superadmins...
- ajout quickbars dans la conf npds de tiny...
- Evolutions
- Nouveau système de cryptage des mots de passes :
Suite au(x) notice(s) dues à l'évolution de la fonction crypt() voici donc la ré-implémentation du système de cryptage et par conséquence des différents login.
Cette ré-implémentation délicate a de plus corrigé d'autres problèmes sporadiques liés au contenu des mots de passe. Elle a été orientée pour que ce soit totalement transparent pour le webmaster et les utilisateurs donc sans campagne de remise à jour des mots de passe. En cas de nouveau site recevant des anciennes données avec donc les mdp en clair ou cryptés avec l'ancien système les mdp seront donc analysés et cryptés avec le nouveau système systématiquement au fur et à mesure des connections des utilisateurs ou des administrateurs.
Les obscures options de cryptage des mots de pass ($system et $system_md5) ont été désimplémentées.
- alertes et message provenant de npds
Finalisation de l'implémentation des fonctions d'envoi de message et alerte (version, sécurité, note) provenant de npds dans les portails et de la gestion de leur lecture par les superadministrateurs.
- traitement des images data:image en base64
les media portables ainsi que tinymce (qui les transforme en blob js) utilise cette technique ce qui posait de nombreux problèmes (fonctionnement (données non acceptées et donc justement modifié par removehack()), stockage, manipulation ...etc)... Nous avons donc créé une fonction (dans mainfile.php) qui retransforme tout "data:image en base64" en une url et donc un fichier (contrôlant au passage la sécurité et la taille de l'image - réduction si nécessaire). Celle-ci a été implémentée dans les 2 systèmes de publications principaux (articles et sections) et dans d'autres pages ou ce type de données peut être entrée (en clair dans tout les formulaires utilisant tinymce (ou pas)) (nous en avons profiter pour implémenter un système de nettoyage des images inutilisées => encore en cours d'amélioration) ...
Pour résumer cette amélioration résoud les problèmes de publication d'image depuis un media portable, et améliore le nettoyage de ressources non utilisées...
- be lazy ... utilisation de l'attribut loading pour les images et iframe qui permet simplement (pas de js car maintenant interprété/executé par tous les navigateurs modernes...) un gain de rapidité considérable ... les images ne sont chargées que quand elles sont visible dans le viewport ...
- sections.php
ajout d'une alerte pour les publications en attente de validation
- Documentation
- manuels admin (encore en travaux)
- Dépendances
- fontawesome update to 5.15.2
- tinymce update to 5.8.1
- openlayers update to 6.9.0
################################################################################
changelog-rev16.2.1 [ révision : 45 - jpb /06-03-2021 ]
- Corrections
patch sécurité ghostform
notices sur view topics
Evolution
icone d'alerte admin pour modules (implémentation)
################################################################################
changelog-rev16.2 [ révision : 44 - jpb /28-02-2021 ]
(non exhaustif...)
pour des informations complètes et détaillées visitez : https://github.com/npds/npds_dune/compare/v16.1...master
- Evolutions
- full utf8 support (utf8mb4)
- passage du core en français
- consolidation support IP V4 V6
- file and pic manager skinable
- emojipopover (utilisation des emoji dans forums, chat, comment and more)
- mysqli par defaut dans config.php
- Corrections et améliorations : suite au retour dans forums et tests (ou pas)
- iconographie : correction classes suite maj fontawesome 5
- geoloc : meilleur support fullscreen
- support IPV6 : consolidation implémentation ipban, chat
- notice php : filemanager, header.php, banner.php, index.php
- edito : date trop ancienne ...
- upload admin image oubliée ...
- responsive image dans impression des articles des sections
- carnet.php mise en page ...
- RGPD consolidation dans critique
- fusion des tables mainblock et adminblock dans la base
- correction raccourcissement de certaine clef primaire (char) devenu trop longue avec le nouvel encodage utf8mb4
- Mises à jour des libs externes :
- bootstrap 4.5 + skins
- tinymce 5.4
- openlayers 6.5.0
- tarteaucitron 1.8.1
################################################################################
changelog-rev16.1 [ révision : 40 - jpb /14-5-2020 ]
(non exhaustif...)
pour des informations complètes et détaillées visitez : https://github.com/npds/npds_dune/compare/v16.0...master
- Corrections suite au retour dans forums et tests
- dysfonctionnement de la mise à jour des réseaux sociaux en admin
- dysfonctionnement de la mise à jour des groupes en admin
- boutons non fonctionnels dans l'édition des fichiers de configuration en admin
- type de valeur incompatible avec mysql > 5 dans newsletter en admin
- contrôles dans la gestion des sections en admin
- attribution des droits sur les blocs défaillant en admin
- absence d'affichage des sujet dans submit.php
- calcul de la taille des fichiers dans download.php
- ajout de possibilité d' url locale dans contrôle formulaire dans installation auto #493
- Evolutions
- interface admin pour configuration upload
- ajout d'extension de types de fichier
- bannissement de plage d'adresse ip en V4 (dans ipban) admin ...
- RGPD ajout fichier politique confidentialité liens et case à cocher d'acceptation dans formulaires ...
- revisite du process de choix et de contrôle des avatar perso
- augmentation de la longueur des champs url du module link dans les formulaires et dans la base
- Doc
- mise à jour des manuels admins ...(en cours)
- Mises à jour des libs externes :
- fontawesome 5
- tinymce 5
- bootbox 5.4
- formvalidation 1.5.0
- tarteaucitron
- openlayers
- jquery 3.5
- bootstrap 4.5
################################################################################
changelog-rev16.0 [ révision : 39 - jpb /13-12-2019 ]
Depuis une version 13 voici les principaux changements.
Implémentations majeures impactant sur tout le portail :
- intégration en backend d'un framework : Bootsrap 4 #requis
ayant pour conséquence :
intégration de Jquery 3.x (implémentation) #requis
abandon de la librairie YUI (désimplémentation)
- intégration des webfont fontawesome version courante (free) :
(soutien et remplacement de l'iconographie du cms) #requis
- abandon de la librairie toggle-div (désimplémentation)
- responsive design
réécriture de presque TOUS les fichiers du portail (suppression des mise en pages tabulaires) et implémentation de classes (pour grilles/grid) ces classes sont celles de bootstrap4 MAIS elle peuvent très bien se comporter comme des classes génériques à cloner ou modifier en cas de changement de framework..)
## ==> ADMINISTRATION
- passage en full utf-8
tous les fichiers (script et langue) sont en utf-8 : la sortie des fichiers langues est donc en utf-8 transformé si nécessaire en entités html
- nouveaux système de droits appliqué au fonctions
stockage des fonctions et des droits dans 2 nouvelles tables de la bd
abandon du mécanisme géré par extend-modules.txt
administration des modules recentralisé pour profiter de la puissance du nouveau système de droits aux fonctions
modification des entêtes des fichiers admin des modules (inclusion de la fonction qui gère les droits)
modification des fichiers install_conf des modules avec install auto et admin qui doivent envoyer une requête d'identification à la table fonctions
- système d'alerte/notification de tache d'administration :
centralisé et disponible dans le bloc admin
- contrôle des serveurs mails :
lors des entrées d'adresse email dans le portail
en admin possibilité de contrôler toutes les adresses mails des utilisateurs déjà stockées. En cas de défaut l'utilisateur sera prévenu (MP) toutes les ressources envoyant des emails vers cette adresse seront suspendues.
## <== ADMINISTRATION
Corrections :
- lib mysqli
ajout de la connection persistante et globalisation de $dblink dans la fonction sql_connect() car variable non disponible dans certain contexte (install auto)
correction fonction sql_num_fields (utilisée dans savemysql)
- lib mysql
# ajout des fonctions clones de (mysql || mysqli_select_db)
- bug (Rev13) état de l'icône témoin de connection ne fonctionnait pas dans les blocs groupes
- bug (Rev13) headlines (la lib feed creator avait changé mais pas la construction du bloc headline)
lib/feedcreator.class.php (corrections conformité dans la lib ATOM)
dans backend.php
dans admin/headlines.php (remove la suppression des espace avant entrée dans bd)
dans mainfile.php (fonction headline)
rajout de la possibilité d'avoir un titre de bloc human readable ...) par la modification du système de création de nom des fichier.cache qui était basée sur un nom compatible de fichier (...sans espace)
Evolutions
Installation automatique de modules :
- install auto en v.1.2
- utilisation des lib (mysql ou mysqli) pour support php7
- ajout support langue espagnol
- compatibilité php7 (ereg=>preg)
- option d'installation rapide
- interface
- désinstallation automatique (prototype)
- intégration côté client d'un contrôle des form
utilisation de formValidation
- suppression des commentaires relatifs à un sondage quand on supprime le sondage.
- chargement de footer_after.inc à partir du thème
modification du fichier footer.php pour pouvoir charger (comme pour les modules) si il existe le fichier footer_after.inc ceci permet de placer ici les js (...de second niveau) nécessaires ==> chargement plus rapide de la page
## ==> THEMES
- 8 themes disponibles dont 3 "skinable" (22 skins)
ce qui donne donc 74 visualisations différentes du portail possible
- Implémentation des skins de Thème pour l'utilisateur et l'administrateur
un theme skinable doit avoir le suffixe _sk
les feuilles de style doivent se trouver dans le dossier themes/_skins/'monskin'/bootstrap.min.css
un theme et toute son infrastructure peut donc supporter les skins
modules/include/header_head.inc ==> [chargement du framework en backend avec CSS par defaut]
===>
si l'utilisateur choisit un skin dans header.php on remodifie le(s) lien(s) CSS relatif au Framework en lui appliquant deux css du framework customisé (bootstrap.min.css, extra.css)
- note :
on peut maintenant avoir des dossiers thèmes non visible par les utilisateurs (pour travaux et désactivation) pour désactiver il suffit de faire précéder le nom du dossier theme par _
- ajout d'une landing page :
offre la possibilité d'avoir un header.html alternatif sur la page d'accueil (défini pour le site), par l'ajout d'un fichier themes/montheme/html/header_landing.html , si ce fichier existe alors il sera chargé pour la page d'accueil en lieu et place du header.html.
## <== THEMES
## ==> SUPPORT DES LANGUAGES
- Support compatibilité PHP 7.x
chasse au notice php (undefined variable, undefined offset, ...)
correction des fichiers où le nom d'une classe est identique à celui d'une fonction de cette classe
correction des preg utlisant le flag '##'e remplacement par callback
correction de new topic.php (encadrement des codes d'erreur forum par des simple quote)
correction de la lib file.class.php (incompatible avec PHP7 objet incompatible?...)
correction de toutes les utilisation de each (big work)
correction des argument de définition des constantes
correction admin/banners.php
lignes 387 et 431 de admin/banners.php (REV 13)
la variable $extrainfo est doublée dans les liste d'arguments de la fonction BannerClientChange() === page blanche !!!!
correction modules/links/links-1.php
ligne 101 (REV 13)
la variable $name deux fois dans les arguments de fonction Add()
=== page blanche
correction modules/links/links.php
ligne 544 (REV 13)
la variable $name deux fois dans les arguments de fonction Add()
- Support compatibilité MYSQL 5.7 +
modification de certaine valeur par default dans la bd
modification dans les fichiers de requêtes où le type de valeur ne correspond pas à celui attendu dans la base ...
typage precis des entrées dans la bd en fonctions des types définis dans la bd : (on manque encore de test ...)
- Support IPV6
pour session log anti spam banIP etc ...
(reste à traiter le cas des adresse IPV4 encapsulé dans une IPV6)
## <== SUPPORT DES LANGUAGES
- Tinymce
version courante
adaptation de l'implémentation
ajout de commande pour les métamots
modification des templates (responsives)
## ==> DIVERS
- Remplacement des licences GNU GPL de version 2 par la version 3
## <== DIVERS
## ==> RGPD
- intégration d'un outil de consentement des services utilisés et des cookies déposés par ces services (tarteaucitron)
## <== RGPD
## ==> GEOLOC
inclusion dans le core du module de géolocalisation
## <== GEOLOC
## ==> INSIDE CODE
mise en majuscule des instruction mySQL
écriture à double indentation (3 espaces) PHP / html / js
généralisation des simple quotes (le plus souvent)
augmentation de la longueur des chaines de sorties réduction des concaténations courtes.
ecriture des js avec le support de jquery ou en js pur
## <== INSIDE CODE
changelog-rev16.8 [ révision : 56 - jpb /31-10-2024 ]
(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.
- 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 ,.
- update dépendances :
version (licence du core) GNU 2 ==> 3
bootstrap 5.3.3
openlayers 9.1
geocoder 4.3.4
- évolutions :
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 ...
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
suppression du provider de fond de carte stamen
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 à 3 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)
- 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 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
- thèmes
ajout d'un attribut data-bs-theme à la balise body (themes-dynamic/header.php)
ajout d'une variable dans le thème permettant le choix de l'apparence du thème (light or dark) ainsi 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 ...)
- inside archive
suppression de fichiers images non utilisés
################################################################################
changelog-rev16.4 [ révision : 53 - jpb /05-10-2022 ]
(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.3...v.16.4
Cette version entraine de nombreuses modifications (plus de 1135 fichiers) dûes en grande partie à la mise à jour du framework bootstrap, des autres dépendances et des corrections et amélioration de la version précédente. La base de données n'est que très peu impactée, principalement sur des données (... quelques métamots). Elle fixe aussi un certain nombre de problèmes de sécurité en renforçant la protection d'accès fichiers et le filtrage des urls.
Cette version est la dernière compatible avec php5.
- update dépendances :
bootstrap 5.2.2
bootstrap-icons 1.9.1
formvalidation v.1.9.0 (lié à maj BS)
colorpicker v.3.4 (non maintenu) ==> puis remplacé par jscolor
bootstrap table 1.19.1
openlayers 6.15.1
geocoder 4.1.2
- mise à jour skin et thème : + 1 theme et 3 nouveaux skins
- validation des formulaire : formvalidation ajout rowselector (pour bon fonctionnement des icônes de validation de formulaire) .. (probablement à affiner encore)
bug track :
- correction du chemin d'accès au fichier langue pour l'aide de l'admin d'upload (typo variable)
- pic manager : correction d'une condition, celle-ci générait une erreur php dans certain cas (plus d'affichage du pic manager)
- pic manager, file manager : erreur 429 lors du traitement de dossier avec de nombreuses images (résolu partiellement le cas peut encore exister ...)
- geoloc correction : contruction des listes de choix des fonds de carte, remplissage du viewport en fonction de l'extension de la couche, openlayers updates...
- affichage correct des IPV6 dans session log
- correction de l'affichage du titre de la fenêtre du chat (affichage des entités html (renvoyées par la traduction) au lieu d'un format text ...) @phrev
améliorations :
- pic manager, file manager : mise en page et changement d'iconographie (bs webfont au lieu de font awesome)
- mise en page de formulaires
- menu utilisateur (externalisation ...)
- thèmisation (code) : possibilité d'ajouter à partir du thème une classe à "l'élément html primaire" d'un bloc
- thèmisation : simplification des dossiers thèmes ajout explicatif sur les templates html des themes dynamique
- metatag :
-- ajout de création automatique de balise meta de type og et twitter la combinaison de ces balise permet la création automatique de "card" pour différents réseau sociaux ...(à documenter)
-- ajout de l'attribut lang dans balise html
sécurité :
suite audit thanks @Nosp, renforcement de url_protect, des accès aux fichiers, et xss sur chat ...
################################################################################
changelog-rev16.3 [ révision : 46 - jpb /20-12-2021 ]
(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.2.1...v.16.3
- Corrections et améliorations
- travaux sur les traductions :
ipban, npds_twi, /admin, contact, manuels admin
- [bug] création et modification groupe
- compatibilité mysql>5 : lnl
- compatibilité mysql8 : (mot réservé rank) comment/reply.php
- compatibilité php>7.4 :
ordre des arguments implode() (savemysql.php, upload.func.forum.php)
deprecated/removed get_magic_quotes_runtime() set_magic_quotes_runtime() (grab_globals.php)
- lib mysql : arguments
- notice(s) et fonctionnement sur les affichages des contributions des anciens membres
- cohérence ancre et urls last-post => lastpost
- oubli de tin class pour tinymce dans filemanager.php
- effacement chat box seulement pour les superadmins...
- ajout quickbars dans la conf npds de tiny...
- Evolutions
- Nouveau système de cryptage des mots de passes :
Suite au(x) notice(s) dues à l'évolution de la fonction crypt() voici donc la ré-implémentation du système de cryptage et par conséquence des différents login.
Cette ré-implémentation délicate a de plus corrigé d'autres problèmes sporadiques liés au contenu des mots de passe. Elle a été orientée pour que ce soit totalement transparent pour le webmaster et les utilisateurs donc sans campagne de remise à jour des mots de passe. En cas de nouveau site recevant des anciennes données avec donc les mdp en clair ou cryptés avec l'ancien système les mdp seront donc analysés et cryptés avec le nouveau système systématiquement au fur et à mesure des connections des utilisateurs ou des administrateurs.
Les obscures options de cryptage des mots de pass ($system et $system_md5) ont été désimplémentées.
- alertes et message provenant de npds
Finalisation de l'implémentation des fonctions d'envoi de message et alerte (version, sécurité, note) provenant de npds dans les portails et de la gestion de leur lecture par les superadministrateurs.
- traitement des images data:image en base64
les media portables ainsi que tinymce (qui les transforme en blob js) utilise cette technique ce qui posait de nombreux problèmes (fonctionnement (données non acceptées et donc justement modifié par removehack()), stockage, manipulation ...etc)... Nous avons donc créé une fonction (dans mainfile.php) qui retransforme tout "data:image en base64" en une url et donc un fichier (contrôlant au passage la sécurité et la taille de l'image - réduction si nécessaire). Celle-ci a été implémentée dans les 2 systèmes de publications principaux (articles et sections) et dans d'autres pages ou ce type de données peut être entrée (en clair dans tout les formulaires utilisant tinymce (ou pas)) (nous en avons profiter pour implémenter un système de nettoyage des images inutilisées => encore en cours d'amélioration) ...
Pour résumer cette amélioration résoud les problèmes de publication d'image depuis un media portable, et améliore le nettoyage de ressources non utilisées...
- be lazy ... utilisation de l'attribut loading pour les images et iframe qui permet simplement (pas de js car maintenant interprété/executé par tous les navigateurs modernes...) un gain de rapidité considérable ... les images ne sont chargées que quand elles sont visible dans le viewport ...
- sections.php
ajout d'une alerte pour les publications en attente de validation
- Documentation
- manuels admin (encore en travaux)
- Dépendances
- fontawesome update to 5.15.2
- tinymce update to 5.8.1
- openlayers update to 6.9.0
################################################################################
changelog-rev16.2.1 [ révision : 45 - jpb /06-03-2021 ]
- Corrections
patch sécurité ghostform
notices sur view topics
Evolution
icone d'alerte admin pour modules (implémentation)
################################################################################
changelog-rev16.2 [ révision : 44 - jpb /28-02-2021 ]
(non exhaustif...)
pour des informations complètes et détaillées visitez : https://github.com/npds/npds_dune/compare/v16.1...master
- Evolutions
- full utf8 support (utf8mb4)
- passage du core en français
- consolidation support IP V4 V6
- file and pic manager skinable
- emojipopover (utilisation des emoji dans forums, chat, comment and more)
- mysqli par defaut dans config.php
- Corrections et améliorations : suite au retour dans forums et tests (ou pas)
- iconographie : correction classes suite maj fontawesome 5
- geoloc : meilleur support fullscreen
- support IPV6 : consolidation implémentation ipban, chat
- notice php : filemanager, header.php, banner.php, index.php
- edito : date trop ancienne ...
- upload admin image oubliée ...
- responsive image dans impression des articles des sections
- carnet.php mise en page ...
- RGPD consolidation dans critique
- fusion des tables mainblock et adminblock dans la base
- correction raccourcissement de certaine clef primaire (char) devenu trop longue avec le nouvel encodage utf8mb4
- Mises à jour des libs externes :
- bootstrap 4.5 + skins
- tinymce 5.4
- openlayers 6.5.0
- tarteaucitron 1.8.1
################################################################################
changelog-rev16.1 [ révision : 40 - jpb /14-5-2020 ]
(non exhaustif...)
pour des informations complètes et détaillées visitez : https://github.com/npds/npds_dune/compare/v16.0...master
- Corrections suite au retour dans forums et tests
- dysfonctionnement de la mise à jour des réseaux sociaux en admin
- dysfonctionnement de la mise à jour des groupes en admin
- boutons non fonctionnels dans l'édition des fichiers de configuration en admin
- type de valeur incompatible avec mysql > 5 dans newsletter en admin
- contrôles dans la gestion des sections en admin
- attribution des droits sur les blocs défaillant en admin
- absence d'affichage des sujet dans submit.php
- calcul de la taille des fichiers dans download.php
- ajout de possibilité d' url locale dans contrôle formulaire dans installation auto #493
- Evolutions
- interface admin pour configuration upload
- ajout d'extension de types de fichier
- bannissement de plage d'adresse ip en V4 (dans ipban) admin ...
- RGPD ajout fichier politique confidentialité liens et case à cocher d'acceptation dans formulaires ...
- revisite du process de choix et de contrôle des avatar perso
- augmentation de la longueur des champs url du module link dans les formulaires et dans la base
- Doc
- mise à jour des manuels admins ...(en cours)
- Mises à jour des libs externes :
- fontawesome 5
- tinymce 5
- bootbox 5.4
- formvalidation 1.5.0
- tarteaucitron
- openlayers
- jquery 3.5
- bootstrap 4.5
################################################################################
changelog-rev16.0 [ révision : 39 - jpb /13-12-2019 ]
Depuis une version 13 voici les principaux changements.
Implémentations majeures impactant sur tout le portail :
- intégration en backend d'un framework : Bootsrap 4 #requis
ayant pour conséquence :
intégration de Jquery 3.x (implémentation) #requis
abandon de la librairie YUI (désimplémentation)
- intégration des webfont fontawesome version courante (free) :
(soutien et remplacement de l'iconographie du cms) #requis
- abandon de la librairie toggle-div (désimplémentation)
- responsive design
réécriture de presque TOUS les fichiers du portail (suppression des mise en pages tabulaires) et implémentation de classes (pour grilles/grid) ces classes sont celles de bootstrap4 MAIS elle peuvent très bien se comporter comme des classes génériques à cloner ou modifier en cas de changement de framework..)
## ==> ADMINISTRATION
- passage en full utf-8
tous les fichiers (script et langue) sont en utf-8 : la sortie des fichiers langues est donc en utf-8 transformé si nécessaire en entités html
- nouveaux système de droits appliqué au fonctions
stockage des fonctions et des droits dans 2 nouvelles tables de la bd
abandon du mécanisme géré par extend-modules.txt
administration des modules recentralisé pour profiter de la puissance du nouveau système de droits aux fonctions
modification des entêtes des fichiers admin des modules (inclusion de la fonction qui gère les droits)
modification des fichiers install_conf des modules avec install auto et admin qui doivent envoyer une requête d'identification à la table fonctions
- système d'alerte/notification de tache d'administration :
centralisé et disponible dans le bloc admin
- contrôle des serveurs mails :
lors des entrées d'adresse email dans le portail
en admin possibilité de contrôler toutes les adresses mails des utilisateurs déjà stockées. En cas de défaut l'utilisateur sera prévenu (MP) toutes les ressources envoyant des emails vers cette adresse seront suspendues.
## <== ADMINISTRATION
Corrections :
- lib mysqli
ajout de la connection persistante et globalisation de $dblink dans la fonction sql_connect() car variable non disponible dans certain contexte (install auto)
correction fonction sql_num_fields (utilisée dans savemysql)
- lib mysql
# ajout des fonctions clones de (mysql || mysqli_select_db)
- bug (Rev13) état de l'icône témoin de connection ne fonctionnait pas dans les blocs groupes
- bug (Rev13) headlines (la lib feed creator avait changé mais pas la construction du bloc headline)
lib/feedcreator.class.php (corrections conformité dans la lib ATOM)
dans backend.php
dans admin/headlines.php (remove la suppression des espace avant entrée dans bd)
dans mainfile.php (fonction headline)
rajout de la possibilité d'avoir un titre de bloc human readable ...) par la modification du système de création de nom des fichier.cache qui était basée sur un nom compatible de fichier (...sans espace)
Evolutions
Installation automatique de modules :
- install auto en v.1.2
- utilisation des lib (mysql ou mysqli) pour support php7
- ajout support langue espagnol
- compatibilité php7 (ereg=>preg)
- option d'installation rapide
- interface
- désinstallation automatique (prototype)
- intégration côté client d'un contrôle des form
utilisation de formValidation
- suppression des commentaires relatifs à un sondage quand on supprime le sondage.
- chargement de footer_after.inc à partir du thème
modification du fichier footer.php pour pouvoir charger (comme pour les modules) si il existe le fichier footer_after.inc ceci permet de placer ici les js (...de second niveau) nécessaires ==> chargement plus rapide de la page
## ==> THEMES
- 8 themes disponibles dont 3 "skinable" (22 skins)
ce qui donne donc 74 visualisations différentes du portail possible
- Implémentation des skins de Thème pour l'utilisateur et l'administrateur
un theme skinable doit avoir le suffixe _sk
les feuilles de style doivent se trouver dans le dossier themes/_skins/'monskin'/bootstrap.min.css
un theme et toute son infrastructure peut donc supporter les skins
modules/include/header_head.inc ==> [chargement du framework en backend avec CSS par defaut]
===>
si l'utilisateur choisit un skin dans header.php on remodifie le(s) lien(s) CSS relatif au Framework en lui appliquant deux css du framework customisé (bootstrap.min.css, extra.css)
- note :
on peut maintenant avoir des dossiers thèmes non visible par les utilisateurs (pour travaux et désactivation) pour désactiver il suffit de faire précéder le nom du dossier theme par _
- ajout d'une landing page :
offre la possibilité d'avoir un header.html alternatif sur la page d'accueil (défini pour le site), par l'ajout d'un fichier themes/montheme/html/header_landing.html , si ce fichier existe alors il sera chargé pour la page d'accueil en lieu et place du header.html.
## <== THEMES
## ==> SUPPORT DES LANGUAGES
- Support compatibilité PHP 7.x
chasse au notice php (undefined variable, undefined offset, ...)
correction des fichiers où le nom d'une classe est identique à celui d'une fonction de cette classe
correction des preg utlisant le flag '##'e remplacement par callback
correction de new topic.php (encadrement des codes d'erreur forum par des simple quote)
correction de la lib file.class.php (incompatible avec PHP7 objet incompatible?...)
correction de toutes les utilisation de each (big work)
correction des argument de définition des constantes
correction admin/banners.php
lignes 387 et 431 de admin/banners.php (REV 13)
la variable $extrainfo est doublée dans les liste d'arguments de la fonction BannerClientChange() === page blanche !!!!
correction modules/links/links-1.php
ligne 101 (REV 13)
la variable $name deux fois dans les arguments de fonction Add()
=== page blanche
correction modules/links/links.php
ligne 544 (REV 13)
la variable $name deux fois dans les arguments de fonction Add()
- Support compatibilité MYSQL 5.7 +
modification de certaine valeur par default dans la bd
modification dans les fichiers de requêtes où le type de valeur ne correspond pas à celui attendu dans la base ...
typage precis des entrées dans la bd en fonctions des types définis dans la bd : (on manque encore de test ...)
- Support IPV6
pour session log anti spam banIP etc ...
(reste à traiter le cas des adresse IPV4 encapsulé dans une IPV6)
## <== SUPPORT DES LANGUAGES
- Tinymce
version courante
adaptation de l'implémentation
ajout de commande pour les métamots
modification des templates (responsives)
## ==> DIVERS
- Remplacement des licences GNU GPL de version 2 par la version 3
## <== DIVERS
## ==> RGPD
- intégration d'un outil de consentement des services utilisés et des cookies déposés par ces services (tarteaucitron)
## <== RGPD
## ==> GEOLOC
inclusion dans le core du module de géolocalisation
## <== GEOLOC
## ==> INSIDE CODE
mise en majuscule des instruction mySQL
écriture à double indentation (3 espaces) PHP / html / js
généralisation des simple quotes (le plus souvent)
augmentation de la longueur des chaines de sorties réduction des concaténations courtes.
ecriture des js avec le support de jquery ou en js pur
## <== INSIDE CODE