Formidable 7.1.0

La version 7.1.0 de formidable vient de sortir.

Quelques corrections de bug et un changement qui pour certains usages avancés peut entrainer de micro rupture.

Désormais les ID HTML (attribut id) des éléments du formulaire sont préfixés par formidable_xx_, où xx est l’identifiant textuel du formulaire.

Ceci afin d’éviter d’avoir des id doublons si deux formulaire formidable sont présents sur la même page.

Peut nécessiter des adaptations dans le cas de JS spécifiques.

A noter que les attributs name eux restent intactes.

Bonjour,
Je reviens sur ce problème de préfixe qui m’impacte, les petits écueils que j’ai rencontré:

Les champs avaient pour id auparavant des choses genre « champ_selection_1 », « champ_input_6 », ceux-ci sont devenus « champ_formidable_XXXX_selection_1 » et « champ_formidable_XXXX_input_6 » ou XXXX est le « slug » du formulaire. Donc c’est pas tout à fait un préfixe, ils seraient devenus « formidable_XXXX_champ_input_6 », donc on peut pas ajouter systématiquement « formidable_XXXX_ » devant le nom du champ, il faut l’ajouter après le premier « champ_ ».

Et je constate que cette règle n’est pas appliquée aux champs « hidden » donc difficile d’automatiser ce changement dans un script js, il faut faire attention. Les « hidden » restent « champ_hidden_1 », je ne sais pas si c’est volontaire, un oubli …

Pierre.

Ce n’est pas normal que ça ne s’applique pas à tous les champs non.

Pour le « champ_ » c’est ma faute il y a… 11 ans. Je pense qu’avec l’introduction de l’option « id » j’aurais dû générer SOIT id="champ_<option nom>" par défaut SOIT id="<option id>" entièrement, sans rajouter « champ_ » dans ce cas. Mais bon c’est un peu tard maintenant…

Oh il n’y a pas de « faute », on essaye de prendre la bonne décision à l’instant T, pas facile. Je signalais ça pour les autres impactés, super boulot en tous cas sur ce plugin Formidable !!
Merci aux dev.

J’étais pas fan de cette rupture, car je sentais venir les problèmes. Mais bon.

Posons les choses calmement

  1. Temporairement, tu peux revenir au comportement ancien en utilisant le pipeline formulaire_saisies. La fonction associée doit être de ce type là :
function prefix_plugin_formulaire_saisies($flux) {
	if ($flux['args']['form'] === 'formidable') {
		unset($flux['data']['options']['prefixe_id']);
	}
	return $flux;
}
  1. Pour le reste je vais ouvrir un ticket, on va prendre une décision et on verra bien ce que ca donne

Et donc le ticket pour décider de cela