Valider 782e4edf rédigé par marcimat's avatar marcimat
Parcourir les fichiers

Suite de cef506c1 : plutôt que de déclarer un maxFiles (toujours possible), on...

Suite de cef506c1 : plutôt que de déclarer un maxFiles (toujours possible), on permet de passer directement l’option "multiple".
Si renseignée, elle prend le dessus sur son calcul automatique à partir du nom du champ.
On transmet ainsi à editer_document et illustrer_document l’indication multiple=false.

Dans ce cas aussi il faut faire attention au nommage de la liste des fichiers déjà envoyés dans l’environnement du formulaire.
C’est vache de mettre un name tabulaire (name=toto[]) sur un champ non multiple ; mais c’est possible.
parent cef506c1
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+4 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -162,6 +162,10 @@ function bigup_lister_fichiers($fichiers, $nom, $multiple) {
	if (!$fichiers or !$nom) {
		return [];
	}
	// Cas particulier de nom tableau (truc[]) sans déclaration d’attribut multiple
	if (substr($nom, -2) == '[]') {
		$nom = substr($nom, 0, -2);
	}
	$nom = bigup_name2nom($nom);
	if ($multiple) {
		$liste = table_valeur($fichiers, $nom);
+2 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -285,7 +285,7 @@ function bigup_medias_formulaire_fond($flux) {
				$formulaire->preparer_input(
					'fichier_upload[]',
					[
						'maxFiles' => 1,
						'multiple' => false,
						'previsualiser' => true
					]
				);
@@ -296,7 +296,7 @@ function bigup_medias_formulaire_fond($flux) {
				$formulaire->preparer_input(
					'fichier_upload[]',
					[
						'maxFiles' => 1,
						'multiple' => false,
						'accept' => bigup_get_accept_logos(),
						'previsualiser' => true,
						'input_class' => 'bigup_illustration',
+4 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -68,6 +68,10 @@
				label=des chats gris (sous tableaux multiple),
				multiple=oui})]

			[(#SAISIE_FICHIER{bigup, lapins/,
				label=Name tableau mais pas multiple,
				multiple=non})]

		</div>

		<div class="boutons">
+8 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -115,6 +115,7 @@ class Formulaire
			'editer_class' => 'pleine_largeur',
			'previsualiser' => false,
			'drop-zone-extended' => '',
			'multiple' => null,
			'maxFiles' => '',
			'accept' => '',
		];
@@ -131,7 +132,11 @@ class Formulaire

				// dès que [] est présent dans un champ, il peut être multiple.
				// on le considère comme tel dans ce cas.
				if ($options['multiple'] === null) {
					$multiple = (strpos($champ, '[]') !== false);
				} else {
					$multiple = (bool)$options['multiple'];
				}

				// Ajouter la classe CSS demandée
				if ($options['input_class']) {
@@ -168,10 +173,9 @@ class Formulaire

				// Dans l'environnement, la liste des fichiers est la clé sans [], si [] est présent à la fin du champ
				// De même le champ sans [] final est à saisie pour calculer les classes CSS
				if ($multiple and substr($champ, -2) == '[]') {
					$champ_env = substr($champ, 0, -2);
				} else {
				$champ_env = $champ;
				if (substr($champ, -2) == '[]') {
					$champ_env = substr($champ, 0, -2);
				}

				// Ajouter les fichiers déjà présents
@@ -188,7 +192,6 @@ class Formulaire
				}

				$this->formulaire = str_replace($input, $fichiers . $new, $this->formulaire);

				// Ajouter une classe sur le conteneur
				if ($options['editer_class']) {
					$regexp = self::regexp_balise_attribut_contenant_valeur('div', 'class', 'editer editer_' . bigup_nom2classe($champ_env));