PluXml 5.10.xxx

bazooka07bazooka07 PluXml Lead Developer, Moderator
12 sept. modifié dans Annonces officielles

Bonjour,

Cette version 5.10.0 succède à la version 5.8.22 et inclut les modifications de la 5.8.23 pour être compatible avec PHP 8.5.

🇬🇧 English translation at the end of this post

  • Elle comporte un contrôle beaucoup plus strict des données saisies par un utilisateur connecté ou non.
  • Les cookies de session différents sont utilisés côté site, côté administration ou à l'installation.
  • Tous les scripts js (javascript) sont déplacés depuis le dossier core/lib vers le dossier core/admin/js. Ainsi l'accès au dossier core/lib n'est plus nécessaire au serveur HTTP (Apache2, Nginx).
  • La traduction pour le russe a été mise à jour.
  • Cette version comporte 2 langues supplémentaires : ukrainien et grec
  • Corrections pour PHP 8.5 et antérieurs (xml_parser_free(), curl_close(), $http_response_header)
  • Possibilité de choisir un captcha image pour les commentaires
  • Nouveau script news.php pour dernière actualités affichées par Google
  • Un délai est maintenant nécessaire pour redemander un nouveau mot de passe
  • Le contrôle de l'installation de PluXml se fait uniquement dans le fichier core/lib/config.php
  • La fonction plxUtils::getRacine() a été revue pour tenir compte des redirections faites par le serveur HTTP (url_rewrite)
  • Mise à jour des dépendances de PHPMailer
  • A l'installation, possibilité de renommer le dossier data
  • Pour mémoire, possibilité de renommer le dossier core/admin. Existait déjà dans la version 5.8.22
  • Côté site, la fonction plxShow::lastArtList() a été modifiée pour tenir compte du contexte (première page, catégorie, tag)
  • Pour plus de détails, voir le fichier readme/CHANGELOG

🇬🇧 ========= English translation by Google :=========== 🇬🇧

Version 5.10.0 succeeds version 5.8.22.

  • It includes much stricter validation of data entered by users, whether logged in or not.
  • Distinct session cookies are now used for the public site, the administration area, and the installation process.
  • All JavaScript (JS) scripts have been moved from the core/lib folder to the core/admin/js folder. Consequently, the HTTP server (Apache2, Nginx) no longer requires access to the core/lib folder.
  • The Russian translation has been updated.
  • This version adds support for two additional languages: Ukrainian and Greek.
  • Fixes for PHP 8.5 and earlier versions (xml_parser_free(), curl_close(), $http_response_header).
  • Option to select an image-based CAPTCHA for comments.
  • New news.php script for displaying the latest news via Google.
  • A time delay is now required before requesting a new password.
  • PluXml installation checks are now handled exclusively within the core/lib/config.php file.
  • The plxUtils::getRacine() function has been revised to account for HTTP server redirects (URL rewriting).
  • PHPMailer dependencies updated.
  • Option to rename the data folder during installation.
  • Reminder: the core/admin folder can also be renamed (a feature that already existed in version 5.8.22).
  • On the public site, the plxShow::lastArtList() function has been modified to take the current context (home page, category, tag) into account.
  • For further details, please refer to the readme/CHANGELOG file.
Mots clés:

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Publication de la version v5.10.0-rc2 qui corrige quelques bugs de la RC1
    https://github.com/pluxml/PluXml/releases/tag/v5.10.0-rc2

    • Refacto for preview of article
    • Enhance display for table of comments in comments.php
    • Check if PLX_ROOT and xml_parser_create() exist
    • Checks if plxShow class exists in plxMotor::urlRewrite()
    • PlxAmin::editConfiguration() about smtp
    • Refacto plxShow
    • Refacto for better Urls
    • MediasManager.js (const, use strict, ..)
    • FILTER_PROFIL in class.plx.utils.php for Unicode,E-mail
    • Refacto for deletion of folder install
    • plxUtils::getRacine()
    • PlxAdmin::editCategories()
    • Trailing "/" for paths in plxAdmin::editConfiguration()
  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Oups, une petite erreur m'a échappé dans la rc2 :
    A la ligne n°336 du fichier install/index.php, remplacer "plxUtils::getRacine()" par "get_root_url()" comme suit :

            header('Location: ' . get_root_url());
    

    La modification sera incluse dans la publication de la prochaine version

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    28 août modifié

    Publication de la version v.5.10.0-rc3 qui corrige quelques bugs de la rc2 et apporte quelques nouveautés :
    https://github.com/pluxml/PluXml/releases/tag/v5.10.0-rc3

    • Enhance popup for image in defaut theme
    • Refacto for updating
    • Refacto plxAdmin::checkProfil()
    • Fix get_oauth_token.php
    • Better include for plx_config.php
    • Move config.php to core/lib/plx_config.php
    • Fix syntax for include
    • Fix for thumbnail and tag of the 1st article in installation
    • Fix PlxShow::catDescription()
    • Fix For alt attribute of thumbnail in plxShow
    • Fix Pattern for plxUtils::FILTER_PROFIL in
    • Fix Redirection after installation

    A noter :

    • le fichier config.php à la racine du site a été déplacé /renommé en core/lib/plx_config.php
    • include PLX_CORE/lib/plx_config.php (anciennement config.php ) se fait uniquement à partir du fichier core/lib/config.php
    • le serveur HTTP (Apache2, Nginx, ...) n'a aucun besoin d'accèder au dossier core/lib
    • Tous les fichiers et dossiers situés dans le dossier core, excepté le dossier core/admin, peuvent être déplacés dans un autre dossier, en particulier à l'extérieur du dossier définie par la veleur de DOCUMENT_ROOT dans la configuratioin du serveur HTTP. Il suffit d'ajuster la valeur de la constante PLX_CORE dans les fichiers concernés
    • il est possible de renommer le dossier core/admin après installation
    • il est possible de renommer le dossier data à l'installation
  • NonoMNonoM Member
    28 août modifié

    Salut @bazooka07
    Merci pour cette nouveauté !
    PS : une petite erreur s'est glissée dans dans ton lien vers la "v.5.10.0-rc3" (il y a un espace entre "v" et "5")

  • krockroc Member

    Merci pour cette nouvelle version ! :)

  • krockroc Member

    Comment faire pour renommer le dossier core/admin ? Ça se passe dans l'administration ?

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Non, cela se fait "à la main"
    Soit avec un client FTP comme Filezillla, soit via une connection SSH, soit dans un terminal sur ton PC, soit ...
    Il faut garder 2 niveau. par exemple :

    • back-office/entrance
    • artistes/entree

    Toujours par rapport à la racine du site.

    Si j'ai un moment de libre, j'ajouterai dans le dossier install un script PHP pour faire ce job.
    A moins, que je rajoute une option dans le fichier install/index.php comme pour le dossier data

  • NonoMNonoM Member
    4 sept. modifié

    Hello @bazooka07

    J'aimerais (et j'essaie) de tester cette nouvelle version de Pluxml en local, est-ce possible ?
    Sous Windows, je n'ai pas trouvé mieux que "UwAmp 3.1.0" mais la version php maxi est la 7.4.20 !

    Problème, après l'install qui s'est bien passée, je suis coincé dans le backoffice avec des erreurs du type "Erreur inconnue (hometemplate=home.php)" ou "Erreur inconnue (racine_articles=data/articles/)"

    Alors en local sous Windows, possible ou pas... avec quel logiciel et quelle version mini de php ?
    EDIT : Je vais tester avec "Laragon" ;)

  • NonoMNonoM Member

    Laragon, c'est pas la joie... les autorisations de modification du fichier "host" de windows sont pas en place, résultat je patauge alors je réinstall laragon

  • NonoMNonoM Member

    2 heures de perdues avec chatgpt pour essayer de comprendre pourquoi Laragon n'arrive pas à configurer des urls pour chaque projet de site en local !

    J'arrive quand même à lancer l'install de pluxml mais j'ai toujours les erreurs nommées plus haut....
    ( "Erreur inconnue (hometemplate=home.php)" ou "Erreur inconnue (racine_articles=data/articles/")

    J'abandonne l'idée de faire fonctionner cette nouvelle version de pluxml en local, désolé...
    voici ma config :

    PluXml version 5.10.0 (encodage UTF-8)

    Version de PHP : 8.3.33
    Apache/2.4.68 (Win64) OpenSSL/3.0.21 PHP/8.3.33

  • NonoMNonoM Member

    Encore moi, lol ;)

    J'ai voulu tester la version Pluxml 5.10 en local mais pas possible sans avoir d'erreurs (voir plus haut).
    J'en ai même profité pour installer "Laragon" sous Windows mais j'ai été confronté à un autre problème... Laragon ne peut pas écrire dans mon fichier "hosts" si il reste en lecture seule malgré les autorisations (Windows defender en serait la cause, à suivre...)

    Je suis donc repassé avec la dernière version de PluXml (5.8.23) et là, pas de problème pour tester tranquillement en local sous Windows et Laragon ! ;)

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Hello @NonoM,

    Habituellement je travaille sous Ubuntu, donc moins de souci.

    Cet après-midi, j'ai testé l'installation de "PluXml -5.10.0-rc3" sous "Windows 10 et "Laragon Full 6.0 220916 "et" PHP-8.5.10-Win32-vs17-x64(TS)". Et "Apache 2.4.63 250207-win64-vs17"
    A l'installation, j'ai renommé le dossier "data" en "robert". Et après inslallation "core/admin" en "bureau/acces" il fat d'abord créer le dossier "bureau"..

    Et aucun souci particulier. Le thème "defaut" retrouve le chemin pour le côté admin

    Pour UwAmp, je n'ai pas réussi à faire la mise à jour pour PHP-8.5. Mais comme Laragon est plus populaire ....

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    @NonoM,

    'Erreur inconnue' est la traduction française d'un token employé dans toutes les traductions. Et pour trouver ce token, on fait à la racine du site dans un terminal :

    grep 'Erreur inconnue' core/lang/fr/*.php
    # affiche core/lang/fr/core.php:'L_UNKNOWN_ERROR' => 'Erreur inconnue',
    

    Donc, on recherche le token L_UNKNOWN_ERROR dans tous les fichiers PHP de PluXml :

    grep -n L_UNKNOWN_ERROR *.php core/{admin,lib}/*.php {install,update}/*.php
    # Entre autres chose, affiche core/lib/class.plx.admin.php:317:             return plxMsg::ERROR(L_UNKNOWN_ERROR . ' (' . $k . '=' . $v . ')');
    

    Les réponses pour les autres fichiers ne correspondent pas à ce qu'on recherche , absence de parenthèses, ...
    La ligne n°317 dans le fichier core/lib/class.plx.admin.php est à l'intérieur de la fonction editConfiguration()

    Donc a priori, PluXml ne retrouve pas le dossier data/articles/ et le fichier home.php dans ton thème.

    Dans les versions précèdentes de PluXml, il n'y avait aucun contrôle. C'était "bienvenue au royaume des aveugles".

    Autre hypothèse : on utilise la fonction realpath() pour faire ces contrôles. C'est possible que cette fonction ne retourne pas le bon chemin sous Windows ( séparateur non standard par rapport à Internet ) et d'après la doc de PHP à propos de realpath() "cela sent le roussi".

    Je ferai un autre essai sous Windows, mais je n'ai pas encore les bons outils en place.

  • NonoMNonoM Member

    Merci pour l'analyse @bazooka07,
    J'ai toujours testé mes projets en local sous Windows avec "UwAmp" mais c'est dépassé maintenant... (version php)
    De mon côté je vais passer à "wampserver" et voir comment ça se passe !

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    5 sept. modifié

    C'est une aberration de développer des sites Internet sous Window$ alors que la grande majorité des serveurs sur Internet tournent sous Linux. C'est se compliquer la vie !
    On peut tester Linux sur une clé USB bootable ou l'installer à côté de Window$ si on lui fait une petite place sur le disque dur.
    Hélas, je suis obligé de reconnaitre à MIcrosoft sa grande force à formater les esprits pour pousser à l'utilisation de ses produits.

    Documentation en français pour l'installation de Debian
    Je confirme que le problème vient bien de realpath(). Et en plus, il met le bazar dans les expressions régulières en employant les caractères réservés dans les regex ":" et "\".

    Je vais remédier à ce problème rapidement.

    J'ai fait une rapide recherche sur Google "wampserver vs laragon". Et Laragon est le meilleur choix.
    J'ai installé la dernière version et fait la mise à jour pour PHP-8.5. PluXml fonctionne très bien avec, hormis le petit problème évoqué qui sera très vite résolu.

  • NonoMNonoM Member

    Salut @bazooka07, je comprends ton jugement...
    j'ai testé beaucoup de distributions linux depuis xx années... j'ai quelques vieilles bécanes (portables ou unité centrale) qui tournent sous Linux Lite ou Zorin, mais l'UC la plus puissante avec une panoplie de logiciels dont je ne peux me passer, est sous Windows,,, j'ai besoin d'avoir tout sous la main, c'est plus pratique ! Installer un Linux en multi-boot juste pour les projets de sites serait une perte de temps je crois (je ne ferai que passer d'un OS à l'autre).

  • Dans ce cas, plutôt que d'installer Linux en multiboot, installe une VM Linux sur ton PC Windows :)
    Ensuite tu montes un partage de dossier entre ta VM et ton Windows (comme ca tu peux éditer les fichiers sous Windows, et lancer le serveur web sous Linux pour en voir le rendu)

  • NonoMNonoM Member

    @kowalsky , Merci... L'idée est bonne mais installer une VM juste pour faire tourner Pluxml 5.10 qui je crois est encore en développement, c'est un peu précipité... surtout qu'avec les autres versions de Pluxml je n'ai pas de problème, donc je pense que le plus simple pour l'instant est de me contenter de Laragon qui peut faire l'affaire, même si je dois retirer provisoirement la "lecture seule" de mon fichier "hosts" à chaque création de projet. ;)

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Voici typiquement le code que je dois mettre pour que PluXml fonctionne sous Windows et qui ne servira jamais sur Internet :

                if(DIRECTORY_SEPARATOR == '/') {
                    $fontPath = PLX_CORE . 'lib/fonts/' . $fontFamily;
                } else {
                    # Hack against Windows
                    $fontPath = implode(DIRECTORY_SEPARATOR, array(realpath(PLX_CORE), 'lib', 'fonts', $fontFamily));
                }
    

    dans la méthode plxCapcha::CreateImage().

    Agaçant, non ?

    Heureusement qu'il y a Google pour aider à résoudre ce type de problème.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Installer une VM Linux sous Windows est effectivement un peu lourd.

    Une alternative est d'utiliser Docker.
    J'avais créé, il y a quelques années, un Dockerfile qui fonctionnait bien. Le code est sur Github :
    https://github.com/bazooka07/docker-alpine-pluxml
    Cela date un peu. Je ferai une mise à jour dès que possible.

    Pour 30 à 35€, on peut s'installer un petit serveur propulsé par Linux avec une SBC ( Single Board Computer) avec processeur ARM et connexion Wifi, et alimenté par un chargeur de smartphone. De base, il y a des serveurs SFTP et SSH. Et on peut installer Apache ou Linux.
    Je joue avec un OrangePi zero 2W acheté il y a 2 ou 3 ans chez Aliexpress.
    Il existe un équivalent chez Raspberry.
    Il y a en vente chez Amazon.
    Cela vaut largement mieux qu'un Laragon.
    C'est comme si on avait un vrai serveur Internet à la maison.

    Chez Armbian, il y a l'excellent logiciel Imager pour configurer ce qu'il faut à l'installation ( Wifi, login, mot de passe, ..). Un vrai bonheur !!

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Hello,
    Publication de la version v.5.10.0-rc3 qui corrige quelques bugs de la rc2 et apporte quelques nouveautés :
    https://github.com/pluxml/PluXml/releases/tag/v5.10.0-rc4 :

    • Testé sous Windows avec Laragon, Apache et PHP-8.5
    • Testé sous Ubuntu comme d'habitude
    • Testé sous Debian avec serveur NGinx ( serveur HTTP) et PHP-FPM 8.5.8

    En plus des corrections de bugs et de quelques hacks spécifiques pour fonctionner sous Windows, il y a quelques nouveautés :

    • possibilité à l'installation de renommer les dossiers data et core/admin
    • de déplacer le contenu du dossier core, à l'exception du dossier admin à l'extérieur du dossier racine du serveur HTTP. Ce dossier racine est défini par la valeur de la variable DOCUMENT_ROOT
    • le code PHP du thème defaut a été largement simplifié. Il est recommandé de partir sur cette base pour créer un nouveau thème, même avec les versions précèdentes de PluXml. L'affichage de la "sidebar" est également plus dynamique.
    • le code HTML dans les fichiers core/admin/*.php est revu en grande partie. Il y a un important abus sur l'utilisation de l'instruction echo. Mais il y a encore beaucoup de ménage à faire ...
  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    A propos de DOCUMENT_ROOT évoqué dans le post précèdent :

    Sur Internet, en général les hébergeurs vous donnent accès en lecture/écriture dans un dossier nommé "/home/mon-login/www".
    Par défaut, c'est la racine du serveur HTTP (Apache en général) où sera installé PluXml ou autre CMS.
    Pour renforcer la sécurité de PluXml vous pouvez créer un dossier "public" par exemple et y installer PluXml.
    Dans la configuration chez l'hébergeur, il faut modifier pour le domaine concerné la valeur du DOCUMENT_ROOT "/home/mon_login/www" en "/home/mon_login/www/public" et cocher à l'installation de PluXml l'option pour cacher les dossiers lib et autres.

    De cette façon, tous les fichiers class.plx.*.php seront inaccessibles depuis un navigateur comme Chrome ou Firefox ou un client FTP comme Filezilla. Pa contre, le moteur PHP pourra toujours les utiliser.

Connectez-vous ou Inscrivez-vous pour répondre.