From 1247a829a3232e583377eb7bb61620b7909eeccc Mon Sep 17 00:00:00 2001
From: Matthieu Marcillaud <marcimat@rezo.net>
Date: Fri, 14 Jan 2022 01:13:32 +0100
Subject: [PATCH] Rector sur ecrire/{exec,genie} avec config PHP 7.4

---
 ecrire/exec/admin_plugin.php | 7 +++++--
 ecrire/exec/base_repair.php  | 1 +
 ecrire/genie/mail.php        | 2 +-
 ecrire/genie/mise_a_jour.php | 8 ++++----
 ecrire/genie/optimiser.php   | 4 ++--
 5 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/ecrire/exec/admin_plugin.php b/ecrire/exec/admin_plugin.php
index f01d10e7bc..37cff649a0 100644
--- a/ecrire/exec/admin_plugin.php
+++ b/ecrire/exec/admin_plugin.php
@@ -81,6 +81,9 @@ function exec_admin_plugin_dist($retour = '') {
  *     Format d'affichage (liste ou arborescence)
  **/
 function admin_plug_args($quoi, $erreur, $format) {
+	$lpf = null;
+	$lcpas = null;
+	$lcpaffichesup = null;
 	if (!$quoi) {
 		$quoi = 'actifs';
 	}
@@ -165,9 +168,9 @@ function admin_plug_args($quoi, $erreur, $format) {
 	}
 
 	if ($quoi == 'actifs' or $lpf) {
-		$nb = count($lcpa);
+		$nb = is_countable($lcpa) ? count($lcpa) : 0;
 		if (defined('_DIR_PLUGINS_SUPPL')) {
-			$nb += count($lcpas);
+			$nb += is_countable($lcpas) ? count($lcpas) : 0;
 		}
 		echo '<h3>' . sinon(
 			singulier_ou_pluriel($nb, 'plugins_actif_un', 'plugins_actifs', 'count'),
diff --git a/ecrire/exec/base_repair.php b/ecrire/exec/base_repair.php
index 81decde1de..ddd369d12c 100644
--- a/ecrire/exec/base_repair.php
+++ b/ecrire/exec/base_repair.php
@@ -31,6 +31,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  * Réparer la base de données
  */
 function exec_base_repair_dist() {
+	$action = null;
 	$ok = false;
 	if (!spip_connect()) {
 		$message = _T('titre_probleme_technique');
diff --git a/ecrire/genie/mail.php b/ecrire/genie/mail.php
index 7a710bd57f..0c3bf6c917 100644
--- a/ecrire/genie/mail.php
+++ b/ecrire/genie/mail.php
@@ -49,7 +49,7 @@ function genie_mail_dist($t) {
 	if (strlen(trim($page['texte']))) {
 		// recuperer les entetes envoyes par #HTTP_HEADER
 		$headers = '';
-		if (isset($page['entetes']) and count($page['entetes'])) {
+		if (isset($page['entetes']) and is_countable($page['entetes']) ? count($page['entetes']) : 0) {
 			foreach ($page['entetes'] as $k => $v) {
 				$headers .= (strlen($v) ? "$k: $v" : $k) . "\n";
 			}
diff --git a/ecrire/genie/mise_a_jour.php b/ecrire/genie/mise_a_jour.php
index ff0335b297..717cba2a89 100644
--- a/ecrire/genie/mise_a_jour.php
+++ b/ecrire/genie/mise_a_jour.php
@@ -33,7 +33,7 @@ function genie_mise_a_jour_dist($t) {
 
 	mise_a_jour_ecran_securite();
 
-	spip_log('Verification version SPIP : ' . ($maj ? $maj : 'version a jour'), 'verifie_maj');
+	spip_log('Verification version SPIP : ' . ($maj ?: 'version a jour'), 'verifie_maj');
 
 	return 1;
 }
@@ -111,7 +111,7 @@ function mise_a_jour_ecran_securite() {
 function info_maj($dir, $file, $version) {
 	include_spip('inc/plugin');
 
-	list($maj, $min, $rev) = preg_split('/\D+/', $version);
+	[$maj, $min, $rev] = preg_split('/\D+/', $version);
 
 	$nom = _DIR_CACHE_XML . _VERSIONS_LISTE;
 	$page = !file_exists($nom) ? '' : file_get_contents($nom);
@@ -129,7 +129,7 @@ function info_maj($dir, $file, $version) {
 
 	foreach ($m as $v) {
 		$v = array_pad($v, 5, 0);
-		list(, $maj2, $min2, , $rev2) = $v;
+		[, $maj2, $min2, , $rev2] = $v;
 		$branche_maj = $maj2 . '.' . $min2;
 		$version_maj = $maj2 . '.' . $min2 . '.' . $rev2;
 		// d'abord les mises à jour de la même branche
@@ -190,7 +190,7 @@ function info_maj_cache($nom, $dir, $page = '') {
 	$res = recuperer_url_cache($url, ['if_modified_since' => $a]);
 	// Si rien de neuf (ou inaccessible), garder l'ancienne
 	if ($res) {
-		$page = $res['page'] ? $res['page'] : $page;
+		$page = $res['page'] ?: $page;
 	}
 	// Placer l'indicateur de fraicheur
 	$page = preg_replace('/^<archives.*?>/', $re, $page);
diff --git a/ecrire/genie/optimiser.php b/ecrire/genie/optimiser.php
index 2fc901c94f..c3ef6ff4f9 100644
--- a/ecrire/genie/optimiser.php
+++ b/ecrire/genie/optimiser.php
@@ -43,7 +43,7 @@ function genie_optimiser_dist($t) {
 	// sachant qu'on a un delai de 48h, on renvoie aujourd'hui a 4h du mat
 	// avec une periode de flou entre 2h et 6h pour ne pas saturer un hebergeur
 	// qui aurait beaucoup de sites SPIP
-	return -(mktime(2, 0, 0) + rand(0, 3600 * 4));
+	return -(mktime(2, 0, 0) + random_int(0, 3600 * 4));
 }
 
 /**
@@ -96,7 +96,7 @@ function optimiser_base_une_table() {
 		$tables[] = array_shift($row);
 	}
 
-	spip_log('optimiser_base_une_table ' . json_encode($tables), 'genie' . _LOG_DEBUG);
+	spip_log('optimiser_base_une_table ' . json_encode($tables, JSON_THROW_ON_ERROR), 'genie' . _LOG_DEBUG);
 	if ($tables) {
 		$table_op = intval(lire_config('optimiser_table', 0) + 1) % sizeof($tables);
 		ecrire_config('optimiser_table', $table_op);
-- 
GitLab