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
## 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 :

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

162
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
* 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.

View File

@ -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;

View File

@ -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 = [];

View File

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