From 32142486789c9473cf005182bfe9ee89b93f720a Mon Sep 17 00:00:00 2001
From: JamesRezo <james@rezo.net>
Date: Sat, 26 Feb 2022 19:11:51 +0100
Subject: [PATCH] =?UTF-8?q?fix=20#5030.=20en=20attendant=20un=20meilleur?=
 =?UTF-8?q?=20m=C3=A9canisme?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc/install.php    | 14 ++++++++------
 ecrire/inc_version.php    |  1 +
 ecrire/lang/ecrire_fr.php |  2 ++
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/ecrire/inc/install.php b/ecrire/inc/install.php
index 2eb1c98001..c916fb7866 100644
--- a/ecrire/inc/install.php
+++ b/ecrire/inc/install.php
@@ -169,6 +169,14 @@ function tester_compatibilite_hebergement() {
 	if (version_compare($p, _PHP_MIN, '<')) {
 		$err[] = _T('install_php_version', ['version' => $p, 'minimum' => _PHP_MIN]);
 	}
+	if (version_compare($p, _PHP_MAX, '>')) {
+		$err[] = _T('install_php_version2', ['version' => $p, 'maximum' => _PHP_MAX]);
+	}
+
+	$diff = array_diff(['xml', 'zip'], get_loaded_extensions());
+	if (!empty($diff)) {
+		$err[] = _T('install_php_extension', ['extensions' => implode(',', $diff)]);
+	}
 
 	// Si on n'a pas la bonne version de PHP, c'est la fin
 	if ($err) {
@@ -186,12 +194,6 @@ function tester_compatibilite_hebergement() {
 			. "| <a href='http://www.php.net/sqlite'>SQLite</a>";
 	}
 
-	// et surtout pas ce mbstring.overload (has been DEPRECATED as of PHP 7.2.0, and REMOVED as of PHP 8.0.0)
-	if ($a = @ini_get('mbstring.func_overload')) {
-		$err[] = _T('install_extension_mbstring')
-			. "mbstring.func_overload=$a - <a href='http://www.php.net/mb_string'>mb_string</a>.<br /><small>";
-	}
-
 	if ($err) {
 		echo "<div class='error'>"
 			. '<h3>' . _T('avis_attention') . '</h3><p>' . _T('install_echec_annonce') . "</p><ul class='spip'>";
diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php
index e15ad7f429..b365763a60 100644
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -34,6 +34,7 @@ error_reporting(E_ALL ^ E_NOTICE);
 
 /** version PHP minimum exigee (cf. inc/utils) */
 define('_PHP_MIN', '7.4.0');
+define('_PHP_MAX', '8.1.99');
 
 if (!defined('_DIR_RESTREINT_ABS')) {
 	/** le nom du repertoire ecrire/ */
diff --git a/ecrire/lang/ecrire_fr.php b/ecrire/lang/ecrire_fr.php
index 773b9ce3b5..eb9cd779ab 100644
--- a/ecrire/lang/ecrire_fr.php
+++ b/ecrire/lang/ecrire_fr.php
@@ -539,6 +539,8 @@ dans une couleur qui indique leur état :',
 	'install_pas_table' => 'Base actuellement sans tables',
 	'install_pass_base_hebergeur' => 'Mot de passe de connexion attribué par l’hébergeur',
 	'install_php_version' => 'PHP version @version@ insuffisant (minimum = @minimum@)',
+	'install_php_version2' => 'PHP version @version@ trop récent (maximum = @maximum@)',
+	'install_php_extension' => 'Les extensions suivantes sont manquantes: @extensions@',
 	'install_select_langue' => 'Sélectionnez une langue puis cliquez sur le bouton « suivant » pour lancer la procédure d’installation.',
 	'install_select_type_db' => 'Indiquer le type de base de données :',
 	'install_select_type_mysql' => 'MySQL',
-- 
GitLab