From 61c2cd37d678e9dbd7cc94bd234fbef2b4bc6c3b Mon Sep 17 00:00:00 2001
From: nicod_ <nicod@lerebooteux.fr>
Date: Wed, 15 Jan 2025 00:51:37 +0100
Subject: [PATCH] =?UTF-8?q?feat:=20Pouvoir=20modifier=20l'objet=20auquel?=
 =?UTF-8?q?=20un=20block=20est=20li=C3=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 blocks_fonctions.php          | 19 +++++++++++++++++++
 formulaires/editer_block.html | 12 ++++++++++++
 lang/block_fr.php             |  5 ++---
 3 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/blocks_fonctions.php b/blocks_fonctions.php
index a30659d..500b5bd 100644
--- a/blocks_fonctions.php
+++ b/blocks_fonctions.php
@@ -500,3 +500,22 @@ function bloctypes_trouver_role($blocktype, $role): array {
 
 	return [];
 }
+
+/**
+ * Génére la liste des objets (du type `article`) utilisable dans une saisie
+ *
+ * @return array
+ */
+function blocks_objets_config() {
+	include_spip('base/objets');
+	$data = [];
+	if($objets = array_filter(lire_config('blocks/objets'))) {
+		foreach ($objets as $objet) {
+			$objet_type = objet_type($objet);
+			$infos = objet_info($objet_type,'texte_objet');
+			$data[$objet_type] = _T($infos);
+		}
+		asort($data);
+	}
+	return $data;
+}
diff --git a/formulaires/editer_block.html b/formulaires/editer_block.html
index 72b7166..933eeff 100644
--- a/formulaires/editer_block.html
+++ b/formulaires/editer_block.html
@@ -13,6 +13,14 @@
 		<button type="submit" class="visually-hidden" aria-hidden="true" name="ajouter" value="1">[(#ENV{id_block}|?{<:block:bouton_enregistrer:/>,<:block:bouton_ajouter:/>})]</button>
 		]
 
+		[(#ENV{include}|non)
+		<div class="editer-groupe">
+		<fieldset>
+			<legend><:block:info_objet_lie:/></legend>
+				[(#SAISIE{selection, objet, label=<:block:info_type_objet_lie:/>, data=#REM|blocks_objets_config})]
+				[(#SAISIE{input, id_objet, label=<:block:info_id_objet_lie:/> })]
+		</fieldset>
+		]
 		[(#ENV{include}|oui)
 		<div class="objetblock__header [(#ENV{id_block}|non)collapsed]">
 			[(#ENV{id_block}|non)
@@ -45,6 +53,10 @@
 		</div>
 		]
 
+		[(#ENV{include}|non)
+		</div>
+		]
+
 		<div [(#ENV{id_block}|non) id="contentblocknew" role="region" aria-labelledby="titleblocknew-#OBJET-#ID_OBJET"] [(#ENV{deplie_block}|non) hidden ]>
 			<div class="editer-groupe">
 				#GENERER_SAISIES{#ENV{_saisies}}
diff --git a/lang/block_fr.php b/lang/block_fr.php
index f226321..26c0490 100644
--- a/lang/block_fr.php
+++ b/lang/block_fr.php
@@ -35,9 +35,8 @@ return [
 	'info_blocks_auteur'                   => 'Les blocs de cet auteur',
 	'info_nb_blocks'                       => '@nb@ blocs',
 	'info_objet_lie'                       => 'Objet lié',
-
-	// O
-	'objet_lie'                            => 'Objet lié',
+	'info_type_objet_lie'                  => 'Type',
+	'info_id_objet_lie'                    => 'N°',
 
 	// R
 	'retirer_lien_block'                   => 'Retirer ce bloc',
-- 
GitLab