From ae1dd35aabbef35f949f0058b129033197eda42a Mon Sep 17 00:00:00 2001
From: b_b <bruno@eliaz.fr>
Date: Tue, 18 Jul 2023 16:10:28 +0200
Subject: [PATCH] feat: afficher un encart pour signaler les nouvelles versions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

dans toutes les pages de l'espace privé pour les webmestres, et un bouton pointant vers le loader s'il est présent

Fix: #5690
---
 ecrire/inc/pipelines_ecrire.php           | 20 ++++++++++++++++++++
 ecrire/lang/ecrire_fr.php                 |  1 +
 ecrire/paquet.xml                         |  1 +
 prive/squelettes/inclure/mise_a_jour.html |  5 +++++
 4 files changed, 27 insertions(+)
 create mode 100644 prive/squelettes/inclure/mise_a_jour.html

diff --git a/ecrire/inc/pipelines_ecrire.php b/ecrire/inc/pipelines_ecrire.php
index 48ffe4f729..00d67ee035 100644
--- a/ecrire/inc/pipelines_ecrire.php
+++ b/ecrire/inc/pipelines_ecrire.php
@@ -309,6 +309,26 @@ function f_queue_affiche_milieu($flux) {
 	return $flux;
 }
 
+/**
+ * Afficher le message de mise à jour dans toutes les pages du privé pour les webmestres
+ *
+ * @pipeline affiche_milieu
+ * @param string $flux
+ * @return string
+ */
+function mise_a_jour_affiche_milieu($flux) {
+	if (
+		$GLOBALS['meta']['info_maj_spip']
+		&& autoriser('webmestre')
+	) {
+		$notice = recuperer_fond('prive/squelettes/inclure/mise_a_jour', []);
+		if (strlen(trim($notice))) {
+			$flux['data'] =  $notice . $flux['data'];
+		}
+	}
+	return $flux;
+}
+
 /**
  * Trouver l'objet qui correspond à l'exec de l'espace privé passé en argument
  *
diff --git a/ecrire/lang/ecrire_fr.php b/ecrire/lang/ecrire_fr.php
index e788e1b65b..128ce4cfdc 100644
--- a/ecrire/lang/ecrire_fr.php
+++ b/ecrire/lang/ecrire_fr.php
@@ -52,6 +52,7 @@ return [
 	'bouton_effacer_tout' => 'Effacer TOUT',
 	'bouton_envoyer_message' => 'Message définitif : envoyer',
 	'bouton_fermer' => 'Fermer',
+	'bouton_mettre_a_jour' => 'Mettre à jour',
 	'bouton_mettre_a_jour_base' => 'Mettre à jour la base de données',
 	'bouton_modifier' => 'Modifier',
 	'bouton_radio_afficher' => 'Afficher',
diff --git a/ecrire/paquet.xml b/ecrire/paquet.xml
index c29a9aa58a..05ffafc22b 100644
--- a/ecrire/paquet.xml
+++ b/ecrire/paquet.xml
@@ -42,6 +42,7 @@
 	<pipeline nom="affiche_droite" action="" />
 	<pipeline nom="affiche_gauche" action="" />
 	<pipeline nom="affiche_milieu" action="f_queue_affiche_milieu" />
+	<pipeline nom="affiche_milieu" action="mise_a_jour_affiche_milieu" />
 	<pipeline nom="affiche_pied" action="" />
 	<pipeline nom="affiche_enfants" action="" />
 	<pipeline nom="affiche_hierarchie" action="" />
diff --git a/prive/squelettes/inclure/mise_a_jour.html b/prive/squelettes/inclure/mise_a_jour.html
new file mode 100644
index 0000000000..af4815175d
--- /dev/null
+++ b/prive/squelettes/inclure/mise_a_jour.html
@@ -0,0 +1,5 @@
+[(#BOITE_OUVRIR{'',notice})]
+	<p><:nouvelle_version_spip{version=#CONFIG{derniere_maj_notifiee}}:></p>
+	[#BOITE_PIED(#CHEMIN{spip_loader.php}|oui)
+	<a class="btn" href="#URL_SITE_SPIP/spip_loader.php"><:bouton_mettre_a_jour:></a>]
+[(#BOITE_FERMER)]
\ No newline at end of file
-- 
GitLab