Développer avec RBS Change : conflit entre formulaires
-
23/04/2012 15:52
Bonjour,
j'ai dans une page un formulaire de contact dans le footer (présent sur toutes les pages) et le formulaire de partage de liens à un ami (formulaire dans le corps de page)
J'ai deux champs qui se nomment "Message", et du coup, je me retrouve avec la valeur par défaut du champs de partage à un ami (l'url à partager) dans le champs "message" du formulaire de contact dans le pied de page.
Une idée pour cloisonner les 2 ?
Merci
Développe sous linux Ubuntu 12.04 LTS Desktop
Projet ecommerce core 3.6.7 -
Bonjour,
La solution de contournement la plus simple reste dans un premier temps de modifier votre formulaire de contact pour changer le nom interne du champ (propriété fieldName du document field, qui n'est pas lié à son libellé).
En effet, ce nom interne n'a d'importance que si du code y est lié. En l'occurrence, le formulaire de partage de lien a besoin que le champ s'appelle "message" pour y placer la valeur mais le formulaire de contact ne fait qu'envoyer un mail, le nom n'a donc que peu d'importance.
Ce nom n'est pas modifiable directement en backoffice mais peut être modifié de différentes manières :
- par code via un patch pour modifier la propriété fieldName et lui donner un autre valeur
- en supprimant et en recréant le champ (dans ce cas le nom interne est généré aléatoirement), il n'y a que lors d'un import XML que cette valeur peut être fixée
En testant votre problème je suis tombé sur un second problème auquel vous pourriez être confronté : si deux formulaires du module formulaires se retrouvent sur la même page, les deux blocs vont réagir à la soumission. Du coup si les champs des deux formulaires sont "compatible" (c'est à dire que les champs requis sont les mêmes), tous deux enverront leur mail alors qu'un seul est soumis par l'utilisateur.
J'ai donc créé deux tickets distincts pour les deux aspects du problème : #57827 et #57806 -
Merci pour ce retour !
En effet j'avais trouvé cette solution mais j'ai malheureusement commencé par supprimer le champs message du formulaire de partage à un ami qui a pour double mauvaise conséquence :
- la valeur par défaut est toujours présente dans le formulaire de contact (or je ne veux pas)
- le code lié au champs message du formulaire de partage à un ami ne fonctionne plus...
je ne vois pas comment, via un patch, je peux modifier la valeur du champs fieldname... auriez vous une exemple à me fournir ?
Développe sous linux Ubuntu 12.04 LTS Desktop
Projet ecommerce core 3.6.7 -
Alors par code c'est assez simple :
1) Récupérer l'identifiant numérique du champ à modifier. En backoffice, vous avez deux solutions :
- le rechercher dans l'onglet "historique" : en 3.5 c'est l'entier situé avant le point dans la propriété "Révision" (en 3.6 c'est une propriété séparée pour qu'il soit plus facilement identifiable)
- dans la liste des documents, cliquer sur le bouton tout à droite de l'en-tête et activez la colonne "Identifiant" (la seule qui soit marquée par défaut)
2) Dans le patch, écrivez les lignes suivantes (en remplaçant l'id et le nom) :$documentId = 123; $fieldName = 'monChamp'; $field = form_persistentdocument_field::getInstanceById($documentId); $field->setFieldName($fieldName); $field->save();
-
c'est assez simple en effet, je test ça !
Développe sous linux Ubuntu 12.04 LTS Desktop
Projet ecommerce core 3.6.7
Merci de prendre connaissance et de respecter les règles des forums.