From fb91e7833fa11b00229edb76a7362bcd4dd512f5 Mon Sep 17 00:00:00 2001
From: tcharlss <tcharlss@bravecassine.com>
Date: Sat, 8 Feb 2025 00:48:31 +0100
Subject: [PATCH] =?UTF-8?q?feat:=20si=20select2=20est=20activ=C3=A9,=20on?=
 =?UTF-8?q?=20l'utilise=20sur=20la=20saisie=20pays=20au=20lieu=20d'un=20si?=
 =?UTF-8?q?mple=20input?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 formulaires/editer_livraisonmode.php | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/formulaires/editer_livraisonmode.php b/formulaires/editer_livraisonmode.php
index 47e94bf..1351405 100644
--- a/formulaires/editer_livraisonmode.php
+++ b/formulaires/editer_livraisonmode.php
@@ -55,6 +55,8 @@ function formulaires_editer_livraisonmode_identifier_dist($id_livraisonmode='new
  *     Hash du formulaire
  */
 function formulaires_editer_livraisonmode_saisies_dist($id_livraisonmode='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
+	include_spip('inc/utils');
+	$select2 = test_plugin_actif('select2');
 	$saisies = [
 		[
 			'saisie' => 'input',
@@ -73,11 +75,14 @@ function formulaires_editer_livraisonmode_saisies_dist($id_livraisonmode='new',
 			],
 		],
 		[
-			'saisie' => 'input',
+			'saisie' => ($select2 ? 'pays' : 'input'),
 			'options' => [
 				'nom' => 'zone_pays',
 				'label' => _T('livraisonmode:champ_zone_pays_label'),
 				'explication' => _T('livraisonmode:champ_zone_pays_explication'),
+				'class' => ($select2 ? 'select2' : ''),
+				'champ_pays' => 'code',
+				'multiple' => true,
 			],
 		],
 		[
@@ -97,11 +102,14 @@ function formulaires_editer_livraisonmode_saisies_dist($id_livraisonmode='new',
 			],
 		],
 		[
-			'saisie' => 'input',
+			'saisie' => ($select2 ? 'pays' : 'input'),
 			'options' => [
 				'nom' => 'zone_pays_exclus',
 				'label' => _T('livraisonmode:champ_zone_pays_exclus_label'),
 				'explication' => _T('livraisonmode:champ_zone_pays_exclus_explication'),
+				'class' => ($select2 ? 'select2' : ''),
+				'champ_pays' => 'code',
+				'multiple' => true,
 			],
 		],
 		[
@@ -244,6 +252,13 @@ function formulaires_editer_livraisonmode_verifier_dist($id_livraisonmode='new',
  *     Retours des traitements
  */
 function formulaires_editer_livraisonmode_traiter_dist($id_livraisonmode='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
+	// Normaliser les sélections de pays si nécessaire
+	foreach (['zone_pays', 'zone_pays_exclus'] as $champ) {
+		$valeur = _request($champ);
+		if (is_array($valeur)) {
+			set_request($champ, implode(',', $valeur));
+		}
+	}
 	return formulaires_editer_objet_traiter('livraisonmode',$id_livraisonmode,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
 }
 
-- 
GitLab