diff --git a/CHANGES.md b/CHANGES.md index 8b107a6e..b2cb3f83 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,7 +1,12 @@ # Changelog +## Version 12.1.01 +### Correction : +- Défaut d'initialisation du générateur de nombre aléatoire utilisé pour le choix des nombres du captcha. + ## Version 12.1.00 ### Corrections : +- Corrige l'activation non autorisée d'une version en langue étrangère du site. - Corrige un problème de prise en compte des scripts et des feuilles de style intégrés à la page ou au site. - Corrige une erreur fatale avec un argument float au lieu d'int dans mt_srand. ### Améliorations : diff --git a/LISEZMOI.md b/LISEZMOI.md new file mode 100644 index 00000000..a53e7439 --- /dev/null +++ b/LISEZMOI.md @@ -0,0 +1,109 @@ +# ZwiiCMS 12.1.01 + +Zwii est un CMS sans base de données (flat-file) qui permet de créer et gérer facilement un site web sans aucune connaissance en programmation. + +ZwiiCMS a été créé par un développeur de talent, [Rémi Jean](https://remijean.fr/). Il est désormais maintenu par Frédéric Tempez. + +[Site](http://zwiicms.fr/) - [Forum](http://forum.zwiicms.com/) - [Version initiale](https://github.com/remijean/ZwiiCMS/) - [GitHub](https://github.com/fredtempez/ZwiiCMS) + +## Configuration recommandée + +* PHP 7.2 ou plus +* Support de .htaccess + +## Licence + +Cette œuvre est mise à disposition sous licence Attribution - Pas d'utilisation Commerciale - Pas de Modification 4.0 International. + +Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-nd/4.0/ ou écrivez à Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. + +## Téléchargement de ZwiiCMS + +Pour télécharger la dernière version publiée, rendez-vous : +- sur [la page des mises à jour](https://forge.chapril.org/ZwiiCMS-Team/ZwiiCMS/releases) +- ou sur [la page de téléchargement du site](https://zwiicms.fr/telechargement) + + +## Installation + +Décompressez l'archive de Zwii et téléversez son contenu à la racine de votre serveur ou dans un sous-répertoire. C'est tout ! + +Vous trouverez de plus amples explications, en particulier pour une installation chez Free, dans la rubrique "Téléchargements" du forum. + + +## Procédures de mise à jour + +A l'occasion de l'installation d'une verion majeure, il est recommandé de réaliser une copie de sauvegarde. + +### Automatique + +* Connectez-vous à votre site. +* Si une mise à jour est disponible, elle vous est proposée dans la barre d'administration. +* Cliquez sur le bouton "Mettre à jour". + +### Manuelle + +* Sauvegardez l'intégralité de votre site, spécialement le répertoire "site". +* Décompressez la nouvelle version sur votre ordinateur. +* Transférez son contenu sur votre serveur en activant le remplacement des fichiers. + + +## Arborescence générale + +*Légende : [R] Répertoire - [F] Fichier* + +```text +[R] core Cœur du système + [R] class Classes + [R] layout Mise en page + [R] module Modules du cœur + [R] vendor Librairies extérieures + [F] core.js.php Cœur javascript + [F] core.php Cœur PHP + +[R] module Modules de page + [R] blog Blog + [R] form Gestionnaire de formulaires + [R] gallery Galerie + [R] news Nouvelles + [R] redirection Redirection + +[R] site Contenu du site + [R] backup Sauvegardes automatiques + [R] data Répertoire des données + [R] fr Dossier localisé + [F] page.json Données des pages + [F] module.json Données des modules de pages + [F] local.json Données du site propres à la langue + [R] content Dossier des contenus de page + [F] accueil.html Exemple contenu de la page d'accueil + [R] fonts Dossier contenant les fontes installées + [F] fonts.html Fichier contenant les appels des fontes à charger sur cdnFonts + [F] fonts.css Fichier contenant la feuille de style liée aux polices de caractères locales + [F] fontes.woff Fichiers locaux des fontes (woff, etc..) + [R] modules Personnalisation des modules ou données propres + [F] admin.css Thème des pages d'administration + [F] admin.json Données de thème des pages d'administration + [F] blacklist.json Journalisation des tentatives de connexion avec des comptes inconnus + [F] config.json Configuration du site + [F] core.json Configuration du noyau + [F] custom.css Feuille de style de la personnalisation avancée + [F] fonts.json Descripteur des fontes personnalisées + [F] journal.log Journalisation des actions + [F] theme.css Thème du site + [F] theme.json Données du site + [F] user.json Données des utilisateurs + [F] .backup Marqueur de la sauvegarde des fichiers si présent + [R] file Répertoire d'upload du gestionnaire de fichiers + [R] source Ressources diverses + [R] thumb Miniatures des images + [R] tmp Répertoire temporaire + +[F] index.php Fichier d'initialisation de ZwiiCMS +[F] robots.txt Filtrage des répertoires accessibles aux robots des moteurs de recherche +[F] sitemap.xml Plan du site +[F] sitemap.xml.gz Version compressée + +Le fichiers .htaccess contribuent à la sécurité en filtrant l'accès aux répertoires sensibles. + +``` diff --git a/README.md b/README.md index cbb98d1b..bed27723 100755 --- a/README.md +++ b/README.md @@ -1,108 +1,108 @@ -# ZwiiCMS 12.1.00 +# ZwiiCMS 12.1.01 -Zwii est un CMS sans base de données (flat-file) qui permet de créer et gérer facilement un site web sans aucune connaissance en programmation. +Zwii is a database-less (flat-file) CMS that allows you to easily create and manage a web site without any programming knowledge. -ZwiiCMS a été créé par un développeur de talent, [Rémi Jean](https://remijean.fr/). Il est désormais maintenu par Frédéric Tempez. +ZwiiCMS was created by a talented developer, [Rémi Jean](https://remijean.fr/). It is now maintained by Frédéric Tempez. -[Site](http://zwiicms.fr/) - [Forum](http://forum.zwiicms.com/) - [Version initiale](https://github.com/remijean/ZwiiCMS/) - [GitHub](https://github.com/fredtempez/ZwiiCMS) +[Site](http://zwiicms.fr/) - [Forum](http://forum.zwiicms.com/) - [Initial version](https://github.com/remijean/ZwiiCMS/) - [GitHub](https://github.com/fredtempez/ZwiiCMS) -## Configuration recommandée +## Recommended configuration -* PHP 7.2 ou plus -* Support de .htaccess +* PHP 7.2 or higher +* .htaccess support -## Téléchargement de ZwiiCMS +## License -Pour télécharger la dernière version publiée, il faut vous rendre sur la page de téléchargement du [site](https://zwiicms.fr/telechargement) +This work is licensed under the Attribution-Noncommercial-No Derivative Works 4.0 International License. + +To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or write to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. + +## Downloading ZwiiCMS + +To download the latest released version, go to : +- [the Updates page](https://forge.chapril.org/ZwiiCMS-Team/ZwiiCMS/releases) +- or at [the site download page](https://zwiicms.fr/telechargement) -La version github est une **version de développement** qui peut encore contenir des bugs mais elle vous permet de tester les dernières nouveautés. Cette version n'est pas recommandée en production. ## Installation -Décompressez l'archive de Zwii et téléversez son contenu à la racine de votre serveur ou dans un sous-répertoire. C'est tout ! +Unzip the Zwii archive and upload its contents to the root of your server or to a subdirectory. That's all! -Vous trouverez de plus amples explications, en particulier pour une installation chez Free, dans la rubrique "Téléchargements" du forum. +You will find more explanations, in particular for an installation at Free, in the "Downloads" section of the forum. -## Procédures de mise à jour +## Update procedures -### Automatique +When installing a major version, it is recommended to make a backup copy. -* Connectez-vous à votre site. -* Si une mise à jour est disponible, elle vous est proposée dans la barre d'administration. -* Cliquez sur le bouton "Mettre à jour". +### Automatic -### Manuelle +* Connect to your site. +* If an update is available, it is proposed in the administration bar. +* Click on the "Update" button. -* Sauvegardez l'intégralité de votre site, spécialement le répertoire "site". -* Décompressez la nouvelle version sur votre ordinateur. -* Transférez son contenu sur votre serveur en activant le remplacement des fichiers. +### Manual -En cas de difficulté avec la nouvelle version, il suffira de téléverser la sauvegarde pour remettre votre site dans son état initial. +* Save your entire site, especially the "site" directory. +* Unzip the new version on your computer. +* Transfer its content to your server by activating the file replacement. -**Remarques :** -* La mise à jour manuelle désactive la réécriture d'URL. À vous de la réactiver depuis la page de configuration du site. -* La mise à niveau de la version 8 vers la version 9 crée deux fichiers de données distincts ("core.json" et "theme.json") à partir du fichier "data.json" de la version 8, puis le renomme "data_imported.json". +## General tree structure -Pour revenir à la version 8, renommez ce fichier "data.json". +*Legend: [R] Directory - [F] File -## Arborescence générale +```` +text +[R] core Core of the system + [R] class Classes + [R] layout Layout + [R] module Core modules + [R] vendor External libraries + [F] core.js.php Javascript core + [F] core.php PHP core -*Légende : [R] Répertoire - [F] Fichier* +[R] module Page modules + [R] blog Blog + [R] form Form manager + [R] gallery Gallery + [R] news News + [R] redirection Redirection -```text -[R] core Cœur du système - [R] class Classes - [R] layout Mise en page - [R] module Modules du cœur - [R] vendor Librairies extérieures - [F] core.js.php Cœur javascript - [F] core.php Cœur PHP +[R] site Site content + [R] backup Automatic backups + [R] data Data directory + [R] en Localized folder + [F] page.json Page data + [F] module.json Page module data + [F] local.json Language-specific site data + [R] content Folder of page contents + [F] home.html Sample home page content + [R] fonts Folder containing the installed fonts + [F] fonts.html File containing the fonts calls to load on cdnFonts + [F] fonts.css File containing the style sheet linked to the local fonts + [F] fonts.woff Local font files (woff, etc..) + [R] modules Customization of modules or own data + [F] admin.css Theme of administration pages + [F] admin.json Theme data for administration pages + [F] blacklist.json Logging of login attempts with unknown accounts + [F] config.json Site configuration + [F] core.json Core configuration + [F] custom.css Advanced customization stylesheet + [F] fonts.json Custom font descriptor + [F] journal.log Action logging + [F] theme.css Site theme + [F] theme.json Site data + [F] user.json User data + [F] .backup Marker for file backup if present + [R] file File manager upload directory + [R] source Various resources + [R] thumb Image thumbnails + [R] tmp Temporary directory -[R] module Modules de page - [R] blog Blog - [R] form Gestionnaire de formulaires - [R] gallery Galerie - [R] news Nouvelles - [R] redirection Redirection +[F] index.php ZwiiCMS initialization file +[F] robots.txt Filtering of directories accessible to search engine robots +[F] sitemap.xml Sitemap +[F] sitemap.xml.gz Compressed version -[R] site Contenu du site - [R] backup Sauvegardes automatiques - [R] data Répertoire des données - [R] fr Dossier localisé - [F] page.json Données des pages - [F] module.json Données des modules de pages - [F] local.json Données du site propres à la langue - [R] content Dossier des contenus de page - [F] accueil.html Exemple contenu de la page d'accueil - [R] fonts Dossier contenant les fontes installées - [F] fonts.html Fichier contenant les appels des fontes à charger sur cdnFonts - [F] fonts.css Fichier contenant la feuille de style liée aux polices de caractères locales - [F] fontes.woff Fichiers locaux des fontes (woff, etc..) - [R] modules Personnalisation des modules ou données propres - [F] admin.css Thème des pages d'administration - [F] admin.json Données de thème des pages d'administration - [F] blacklist.json Journalisation des tentatives de connexion avec des comptes inconnus - [F] config.json Configuration du site - [F] core.json Configuration du noyau - [F] custom.css Feuille de style de la personnalisation avancée - [F] fonts.json Descripteur des fontes personnalisées - [F] journal.log Journalisation des actions - [F] theme.css Thème du site - [F] theme.json Données du site - [F] user.json Données des utilisateurs - [F] .backup Marqueur de la sauvegarde des fichiers si présent - [R] file Répertoire d'upload du gestionnaire de fichiers - [R] source Ressources diverses - [R] thumb Miniatures des images - [R] tmp Répertoire temporaire - -[F] index.php Fichier d'initialisation de ZwiiCMS -[F] robots.txt Filtrage des répertoires accessibles aux robots des moteurs de recherche -[F] sitemap.xml Plan du site -[F] sitemap.xml.gz Version compressée - -Le fichiers .htaccess contribuent à la sécurité en filtrant l'accès aux répertoires sensibles. - -``` +The .htaccess files contribute to security by filtering access to sensitive directories. diff --git a/core/class/template.class.php b/core/class/template.class.php index 65fbbd3c..35fae002 100644 --- a/core/class/template.class.php +++ b/core/class/template.class.php @@ -71,7 +71,7 @@ class template $limit = $attributes['limit'] ? count($letters) - 1 : 10; // Tirage de l'opération - mt_srand((int) microtime() * 1000000); + mt_srand(); // Captcha simple limité à l'addition $operator = $attributes['limit'] ? mt_rand(1, 4) : 1; @@ -81,9 +81,9 @@ class template } // Tirage des nombres - mt_srand( (int) microtime(true) * 1000000); + mt_srand(); $firstNumber = mt_rand(1, $limit); - mt_srand( (int) microtime(true) * 1000000); + mt_srand(); $secondNumber = mt_rand(1, $limit); // Permutation si addition ou soustraction @@ -113,7 +113,7 @@ class template for ($i = 1; $i <= $firstNumber; $i++) { $limit = $limit2[$i - 1]; } - mt_srand((int) microtime() * 1000000); + mt_srand(); $secondNumber = mt_rand(1, $limit); $firstNumber = $firstNumber * $secondNumber; $result = $firstNumber / $secondNumber; diff --git a/core/core.php b/core/core.php index 6dbea0a5..7d3ffabb 100644 --- a/core/core.php +++ b/core/core.php @@ -53,7 +53,7 @@ class common const ZWII_UI_URL = 'https://forge.chapril.org/ZwiiCMS-Team/zwiicms-translations/raw/branch/master/'; // Numéro de version et branche pour l'autoupdate - const ZWII_VERSION = '12.1.00'; + const ZWII_VERSION = '12.1.01'; const ZWII_UPDATE_CHANNEL = "v12"; public static $actions = []; diff --git a/core/module/translate/translate.php b/core/module/translate/translate.php index ce9b0be2..cc1aad26 100644 --- a/core/module/translate/translate.php +++ b/core/module/translate/translate.php @@ -65,7 +65,7 @@ class translate extends common // Jeton incorrect ou URl avec le code langue incorrecte if ( $this->getUrl(3) !== $_SESSION['csrf'] && - array_key_exists($lang, self::$languages) == false + array_key_exists($lang, self::$languages) === false ) { // Valeurs en sortie $this->addOutput([ @@ -566,10 +566,21 @@ class translate extends common */ public function content() { - // Activation du drapeau + // Langue sélectionnée $lang = $this->getUrl(2); - // Changement ? - if ($this->getInput('ZWII_CONTENT') !== $lang) { + /** + * Changement de la langue si + * différe de la langue active + * déjà initialisée + * fait partie des lnagues installées + */ + if ( $this->getInput('ZWII_CONTENT') !== $lang + && + is_dir(self::DATA_DIR . $lang) + && + array_key_exists($lang, self::$languages) === true + + ) { // Nettoyer le cookie helper::deleteCookie('ZWII_CONTENT'); // Stocker le choix