From c8aec9a317b997e7b7e2335dca5f0996886362ef Mon Sep 17 00:00:00 2001
From: nicod_ <nicod@lerebooteux.fr>
Date: Thu, 11 May 2023 20:34:20 +0200
Subject: [PATCH] =?UTF-8?q?Ne=20proposer=20que=20les=20types=20de=20blocs?=
 =?UTF-8?q?=20qu'on=20peut=20effectivement=20associer=20=C3=A0=20ce=20type?=
 =?UTF-8?q?=20d'objet?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 formulaires/editer_block.php |  1 +
 saisies/blocktypes.html      | 30 +++++++++++++++++++-----------
 2 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/formulaires/editer_block.php b/formulaires/editer_block.php
index e97c65c..6931977 100644
--- a/formulaires/editer_block.php
+++ b/formulaires/editer_block.php
@@ -125,6 +125,7 @@ function formulaires_editer_block_charger_dist($id_block = 'new', $objet = null,
 					'nom'         => 'id_blocktype',
 					'obligatoire' => 'oui',
 					'label'       => _T('block:champ_id_blocktype_label'),
+					'objet'       => $objet,
 				],
 			],
 		];
diff --git a/saisies/blocktypes.html b/saisies/blocktypes.html
index e718393..40116ca 100644
--- a/saisies/blocktypes.html
+++ b/saisies/blocktypes.html
@@ -1,29 +1,37 @@
+#SET{types,#ARRAY}
+<BOUCLE(BLOCKTYPES)
+	{id_blocktype !IN #ENV{exclus}}
+	{id_blocktype?}{recherche?}
+	{tout}{par num titre, titre}>
+	#SET{objets,#OBJETS|blocks_deserialize}
+	[(#GET{objets}|non|ou{ #ENV{objet}|non }|ou{ #ENV{objet}|in_array{#GET{objets}} })
+		#SET{types,#GET{types}|push{#ID_BLOCKTYPE}}
+	]
+</BOUCLE>
+
 [(#ENV{forcer_select}|oui)
 <select name="#ENV{nom}" id="champ_[(#ENV{nom}|saisie_nom2classe)]"[ class="(#ENV{class})"][ disabled="(#ENV{disable})"]>
 	[(#ENV{cacher_option_intro}|non)
 		<option value="">[(#ENV{option_intro})]</option>]
-	<BOUCLE_blocktypes(BLOCKTYPES)
+	<BOUCLE_blocktypes(DATA){source tableau, #GET{types}}>
 		{id_blocktype !IN #ENV{exclus}}
 		{id_blocktype?}{recherche?}
 		{tout}{par num titre, titre}>
-		<option value="#ID_BLOCKTYPE"[(#ID_BLOCKTYPE|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>#TITRE</option>
+		<option value="#VALEUR"[(#VALEUR|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>#INFO_TITRE{blocktype,#VALEUR}</option>
 	</BOUCLE_blocktypes>
 </select>
 ]
 
 [(#ENV{forcer_select}|non)
-<BOUCLE(BLOCKTYPES)
-	{id_blocktype !IN #ENV{exclus}}
-	{id_blocktype?}{recherche?}
-	{tout}{par num titre, titre}>
+<BOUCLE(DATA){source tableau, #GET{types}}>
 <div class="choix[ (#ENV{class})]">
-	<input type="radio" name="[(#ENV{nom}|saisie_nom2classe)]" class="radio" value="#ID_BLOCKTYPE"
-		   id="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_#ID_BLOCKTYPE"
+	<input type="radio" name="[(#ENV{nom}|saisie_nom2classe)]" class="radio" value="#VALEUR"
+		   id="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_#VALEUR"
 		   [(#ENV{obligatoire}|et{#ENV{obligatoire}|!={non}}|oui) required="required"]
 		   [ (#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}|strval|=={#CLE|strval}|oui)checked="checked"]/>
-	<label for="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_#ID_BLOCKTYPE"[(#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}|=={#ID_BLOCKTYPE}|oui)class="on"]>
-		<strong>#TITRE</strong>
-		[(#DESCRIPTION|propre)]
+	<label for="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]_#VALEUR"[(#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}|=={#VALEUR}|oui)class="on"]>
+		<strong>#INFO_TITRE{blocktype,#VALEUR}</strong>
+		[(#INFO_DESCRIPTION{blocktype,#VALEUR}|propre)]
 	</label>
 </div>
 </BOUCLE>
-- 
GitLab