Les saisies d'un fieldset qui sont déclarées au mauvais endroit sont quand même générées #127

Closed
opened 1 year ago by tcharlss · 8 comments
tcharlss commented 1 year ago
Owner

Quand on se plante dans la déclaration des saisies d'un fieldset en les mettant dans la clé options au lieu de les mettre au même niveau [1], ça génère quand même les saisies.

Du coup on a l'impression que tout va bien, alors que non : elles sont ignorées par le charger, le traiter etc.

Exemple :

// Grossière erreur qui génère quand même les saisies du fieldset
$saisies = [
	[
		'saisie' => 'fieldset',
		'options' => [
			'nom' => 'mon_fieldset',
			'saisies' => [...], // Grosse erreur
		],
	],
];

// Bonne façon
$saisies = [
	[
		'saisie' => 'fieldset',
		'options' => [
			'nom' => 'mon_fieldset',
		],
		'saisies' => [...] // Ok
	],
];

[1] c'est un ami qui m'a dit, moi je fais jamais d'erreur.

Quand on se plante dans la déclaration des saisies d'un fieldset en les mettant **dans** la clé `options` au lieu de les mettre au même niveau \[1\], ça génère quand même les saisies. Du coup on a l'impression que tout va bien, alors que non : elles sont ignorées par le charger, le traiter etc. Exemple : ```php // Grossière erreur qui génère quand même les saisies du fieldset $saisies = [ [ 'saisie' => 'fieldset', 'options' => [ 'nom' => 'mon_fieldset', 'saisies' => [...], // Grosse erreur ], ], ]; // Bonne façon $saisies = [ [ 'saisie' => 'fieldset', 'options' => [ 'nom' => 'mon_fieldset', ], 'saisies' => [...] // Ok ], ]; ``` \[1\] c'est un ami qui m'a dit, moi je fais jamais d'erreur.
Owner

hum. je viens de tester (en spip 3.2 + saisies 3, comme tu me disais ce matin) et je ne reproduis pas....

hum. je viens de tester (en spip 3.2 + saisies 3, comme tu me disais ce matin) et je ne reproduis pas....
Poster
Owner

Quelle partie tu ne reproduis pas ?
Le fait que les saisies mal déclarées sont quand même génèrées, et/ou le fait qu'elles s'enregistrent pas ?

Moi c'était dans le cas d'un formulaire de config, je précise.
Si tu veux je peux t'envoyer le php complet.

Quelle partie tu ne reproduis pas ? Le fait que les saisies mal déclarées sont quand même génèrées, et/ou le fait qu'elles s'enregistrent pas ? Moi c'était dans le cas d'un formulaire de config, je précise. Si tu veux je peux t'envoyer le php complet.
Owner

le fait qu'elles s'affichent quand même. J'ai essayé de faire un formulaire de config selon le modèle erronée que tu donne > rien, nada. Donc oui je veux bien le php.

le fait qu'elles s'affichent quand même. J'ai essayé de faire un formulaire de config selon le modèle erronée que tu donne > rien, nada. Donc oui je veux bien le php.
Poster
Owner

J'ai retesté sur un autre site en Spip 4 + Saisies 4, toujours pareil.
Voilà le php complet du formulaire de test configurer_truc.php.

edit : mauvais exemple, voir commentaire suivant. Je le laisse pour la postérité :p

<?php

function formulaires_configurer_truc_saisies_dist () {

    $saisies = [
        // Erreur
        [
            'saisie' => 'fieldset',
            'options' => [
                'nom' => 'mon_fieldset',
                'label' => 'Fieldset avec saisie mal déclarée',
                'saisies' => [
                    [
                        'saisie' => 'input',
                        'options' => [
                            'nom' => 'input1',
                            'label' => 'Saisie qui ne devrait pas s’afficher',
                        ],
                    ],
                ],
            ],
        ],
        // Ok
        [
            'saisie' => 'fieldset',
            'options' => [
                'nom' => 'mon_fieldset2',
                'label' => 'Fieldset ok',
                'saisies' => [
                    [
                        'saisie' => 'input',
                        'options' => [
                            'nom' => 'input2',
                            'label' => 'Saisie ok',
                        ],
                    ],
                ],
            ],
        ],
    ];

  return $saisies;
}

Et ce que j'obtiens :

J'ai retesté sur un autre site en Spip 4 + Saisies 4, toujours pareil. Voilà le php complet du formulaire de test `configurer_truc.php`. **edit** : mauvais exemple, voir commentaire suivant. Je le laisse pour la postérité :p ```php <?php function formulaires_configurer_truc_saisies_dist () { $saisies = [ // Erreur [ 'saisie' => 'fieldset', 'options' => [ 'nom' => 'mon_fieldset', 'label' => 'Fieldset avec saisie mal déclarée', 'saisies' => [ [ 'saisie' => 'input', 'options' => [ 'nom' => 'input1', 'label' => 'Saisie qui ne devrait pas s’afficher', ], ], ], ], ], // Ok [ 'saisie' => 'fieldset', 'options' => [ 'nom' => 'mon_fieldset2', 'label' => 'Fieldset ok', 'saisies' => [ [ 'saisie' => 'input', 'options' => [ 'nom' => 'input2', 'label' => 'Saisie ok', ], ], ], ], ], ]; return $saisies; } ``` Et ce que j'obtiens : ![](https://git.spip.net/attachments/a494285f-fb29-487d-90d0-570eb4f45f15)
Collaborator

C’est moi où tu as mis le même code (erronné) dans les 2 fieldset dans ton exemple @tcharlss ?

C’est moi où tu as mis le même code (erronné) dans les 2 fieldset dans ton exemple @tcharlss ?
Poster
Owner

Raaah tisane de tisane, bien vu @marcimat
Mais bon, ça change pas que ça illustre quand même le problème.

On se concentre et on remet le bon exemple :D

<?php

function formulaires_configurer_truc_saisies_dist () {

	$saisies = [
		// Erreur
		[
			'saisie' => 'fieldset',
			'options' => [
				'nom' => 'mon_fieldset',
				'label' => 'Fieldset avec saisie mal déclarée',
				'saisies' => [
					[
						'saisie' => 'input',
						'options' => [
							'nom' => 'input1',
							'label' => 'Saisie qui ne devrait pas s’afficher',
						]
					]
				],
			],
		],
		// Ok
		[
			'saisie' => 'fieldset',
			'options' => [
				'nom' => 'mon_fieldset2',
				'label' => 'Fieldset ok',
			],
			'saisies' => [
				[
					'saisie' => 'input',
					'options' => [
						'nom' => 'input2',
						'label' => 'Saisie ok',
					]
				]
			],
		],
	];

	return $saisies;
}
Raaah tisane de tisane, bien vu @marcimat Mais bon, ça change pas que ça illustre quand même le problème. On se concentre et on remet le bon exemple :D ```php <?php function formulaires_configurer_truc_saisies_dist () { $saisies = [ // Erreur [ 'saisie' => 'fieldset', 'options' => [ 'nom' => 'mon_fieldset', 'label' => 'Fieldset avec saisie mal déclarée', 'saisies' => [ [ 'saisie' => 'input', 'options' => [ 'nom' => 'input1', 'label' => 'Saisie qui ne devrait pas s’afficher', ] ] ], ], ], // Ok [ 'saisie' => 'fieldset', 'options' => [ 'nom' => 'mon_fieldset2', 'label' => 'Fieldset ok', ], 'saisies' => [ [ 'saisie' => 'input', 'options' => [ 'nom' => 'input2', 'label' => 'Saisie ok', ] ] ], ], ]; return $saisies; } ```
maieul referenced this issue from a commit 1 year ago
maieul closed this issue 1 year ago
maieul referenced this issue from a commit 1 year ago
Owner

Corrigé dans les 2 branches !

Corrigé dans les 2 branches !
Poster
Owner

👍

👍
Sign in to join this conversation.
No Milestone
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.