Merge branch 'master' into 12100-modules-translations

This commit is contained in:
Fred Tempez 2023-01-19 11:42:39 +01:00
commit cc57609816
6 changed files with 215 additions and 90 deletions

View File

@ -1,7 +1,12 @@
# Changelog # 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 ## Version 12.1.00
### Corrections : ### 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 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. - Corrige une erreur fatale avec un argument float au lieu d'int dans mt_srand.
### Améliorations : ### Améliorations :

109
LISEZMOI.md Normal file
View File

@ -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.
```

156
README.md
View File

@ -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 * PHP 7.2 or higher
* Support de .htaccess * .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 ## 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. ### Automatic
* Si une mise à jour est disponible, elle vous est proposée dans la barre d'administration.
* Cliquez sur le bouton "Mettre à jour".
### 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". ### Manual
* Décompressez la nouvelle version sur votre ordinateur.
* Transférez son contenu sur votre serveur en activant le remplacement des fichiers.
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. ## General tree structure
* 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".
Pour revenir à la version 8, renommez ce fichier "data.json". *Legend: [R] Directory - [F] File
## Arborescence générale ````
text
*Légende : [R] Répertoire - [F] Fichier* [R] core Core of the system
```text
[R] core Cœur du système
[R] class Classes [R] class Classes
[R] layout Mise en page [R] layout Layout
[R] module Modules du cœur [R] module Core modules
[R] vendor Librairies extérieures [R] vendor External libraries
[F] core.js.php Cœur javascript [F] core.js.php Javascript core
[F] core.php Cœur PHP [F] core.php PHP core
[R] module Modules de page [R] module Page modules
[R] blog Blog [R] blog Blog
[R] form Gestionnaire de formulaires [R] form Form manager
[R] gallery Galerie [R] gallery Gallery
[R] news Nouvelles [R] news News
[R] redirection Redirection [R] redirection Redirection
[R] site Contenu du site [R] site Site content
[R] backup Sauvegardes automatiques [R] backup Automatic backups
[R] data Répertoire des données [R] data Data directory
[R] fr Dossier localisé [R] en Localized folder
[F] page.json Données des pages [F] page.json Page data
[F] module.json Données des modules de pages [F] module.json Page module data
[F] local.json Données du site propres à la langue [F] local.json Language-specific site data
[R] content Dossier des contenus de page [R] content Folder of page contents
[F] accueil.html Exemple contenu de la page d'accueil [F] home.html Sample home page content
[R] fonts Dossier contenant les fontes installées [R] fonts Folder containing the installed fonts
[F] fonts.html Fichier contenant les appels des fontes à charger sur cdnFonts [F] fonts.html File containing the fonts calls to load on cdnFonts
[F] fonts.css Fichier contenant la feuille de style liée aux polices de caractères locales [F] fonts.css File containing the style sheet linked to the local fonts
[F] fontes.woff Fichiers locaux des fontes (woff, etc..) [F] fonts.woff Local font files (woff, etc..)
[R] modules Personnalisation des modules ou données propres [R] modules Customization of modules or own data
[F] admin.css Thème des pages d'administration [F] admin.css Theme of administration pages
[F] admin.json Données de thème des pages d'administration [F] admin.json Theme data for administration pages
[F] blacklist.json Journalisation des tentatives de connexion avec des comptes inconnus [F] blacklist.json Logging of login attempts with unknown accounts
[F] config.json Configuration du site [F] config.json Site configuration
[F] core.json Configuration du noyau [F] core.json Core configuration
[F] custom.css Feuille de style de la personnalisation avancée [F] custom.css Advanced customization stylesheet
[F] fonts.json Descripteur des fontes personnalisées [F] fonts.json Custom font descriptor
[F] journal.log Journalisation des actions [F] journal.log Action logging
[F] theme.css Thème du site [F] theme.css Site theme
[F] theme.json Données du site [F] theme.json Site data
[F] user.json Données des utilisateurs [F] user.json User data
[F] .backup Marqueur de la sauvegarde des fichiers si présent [F] .backup Marker for file backup if present
[R] file Répertoire d'upload du gestionnaire de fichiers [R] file File manager upload directory
[R] source Ressources diverses [R] source Various resources
[R] thumb Miniatures des images [R] thumb Image thumbnails
[R] tmp Répertoire temporaire [R] tmp Temporary directory
[F] index.php Fichier d'initialisation de ZwiiCMS [F] index.php ZwiiCMS initialization file
[F] robots.txt Filtrage des répertoires accessibles aux robots des moteurs de recherche [F] robots.txt Filtering of directories accessible to search engine robots
[F] sitemap.xml Plan du site [F] sitemap.xml Sitemap
[F] sitemap.xml.gz Version compressée [F] sitemap.xml.gz Compressed version
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.
```

View File

@ -71,7 +71,7 @@ class template
$limit = $attributes['limit'] ? count($letters) - 1 : 10; $limit = $attributes['limit'] ? count($letters) - 1 : 10;
// Tirage de l'opération // Tirage de l'opération
mt_srand((int) microtime() * 1000000); mt_srand();
// Captcha simple limité à l'addition // Captcha simple limité à l'addition
$operator = $attributes['limit'] ? mt_rand(1, 4) : 1; $operator = $attributes['limit'] ? mt_rand(1, 4) : 1;
@ -81,9 +81,9 @@ class template
} }
// Tirage des nombres // Tirage des nombres
mt_srand( (int) microtime(true) * 1000000); mt_srand();
$firstNumber = mt_rand(1, $limit); $firstNumber = mt_rand(1, $limit);
mt_srand( (int) microtime(true) * 1000000); mt_srand();
$secondNumber = mt_rand(1, $limit); $secondNumber = mt_rand(1, $limit);
// Permutation si addition ou soustraction // Permutation si addition ou soustraction
@ -113,7 +113,7 @@ class template
for ($i = 1; $i <= $firstNumber; $i++) { for ($i = 1; $i <= $firstNumber; $i++) {
$limit = $limit2[$i - 1]; $limit = $limit2[$i - 1];
} }
mt_srand((int) microtime() * 1000000); mt_srand();
$secondNumber = mt_rand(1, $limit); $secondNumber = mt_rand(1, $limit);
$firstNumber = $firstNumber * $secondNumber; $firstNumber = $firstNumber * $secondNumber;
$result = $firstNumber / $secondNumber; $result = $firstNumber / $secondNumber;

View File

@ -53,7 +53,7 @@ class common
const ZWII_UI_URL = 'https://forge.chapril.org/ZwiiCMS-Team/zwiicms-translations/raw/branch/master/'; const ZWII_UI_URL = 'https://forge.chapril.org/ZwiiCMS-Team/zwiicms-translations/raw/branch/master/';
// Numéro de version et branche pour l'autoupdate // 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"; const ZWII_UPDATE_CHANNEL = "v12";
public static $actions = []; public static $actions = [];

View File

@ -65,7 +65,7 @@ class translate extends common
// Jeton incorrect ou URl avec le code langue incorrecte // Jeton incorrect ou URl avec le code langue incorrecte
if ( if (
$this->getUrl(3) !== $_SESSION['csrf'] && $this->getUrl(3) !== $_SESSION['csrf'] &&
array_key_exists($lang, self::$languages) == false array_key_exists($lang, self::$languages) === false
) { ) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
@ -566,10 +566,21 @@ class translate extends common
*/ */
public function content() public function content()
{ {
// Activation du drapeau // Langue sélectionnée
$lang = $this->getUrl(2); $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 // Nettoyer le cookie
helper::deleteCookie('ZWII_CONTENT'); helper::deleteCookie('ZWII_CONTENT');
// Stocker le choix // Stocker le choix