Qu'arrive-t-il aux données Webform lorsqu'un composant est supprimé? Puis-je changer un type de composant?

9

J'ai hérité d'un formulaire Web complexe avec plusieurs centaines de soumissions. L'un des composants était un champ de texte utilisé pour capturer l'adresse e-mail de l'expéditeur du formulaire. Pour une raison quelconque, il s'agit d'un champ de texte et non d'un champ E-mail qui m'empêche d'utiliser l'adresse e-mail pour envoyer un e-mail de confirmation.

Si je supprimais le composant de messagerie de champ de texte, qu'arriverait-il à toutes les données? Je suppose qu'il serait effacé.

Existe-t-il un moyen de modifier le type d'un composant de formulaire tout en préservant les données?

Mise à jour: j'utilise Drupal 7 et Webform 3.19

Kevin Morse
la source
Utilisez-vous le module Webform pour Drupal 6 ou Drupal 7?
Aiias
Drupal 7. Désolé, j'aurais dû le mentionner.
Kevin Morse
Dans Drupal 7, il y a un endroit pour changer le nom du champ dans la base de données. Mais je ne sais pas comment le faire
AgA

Réponses:

3

Lorsqu'un composant Webform est supprimé, les données soumises pour ce composant sont supprimées. Les données des autres composants du formulaire sont conservées. Je les ai confirmés en interrogeant la table MySQL webform_submitted_data sur Webform 7.x-3.23.

Comme l'indique l'utilisateur calebtr, il y a une case à cocher "Privé" pour chaque composant qui peut être utilisé comme une fonction ersatz supprimer mais enregistrer les données, sauf que les utilisateurs connectés avec le privilège de lire les résultats verront toujours le composant sur le formulaire (pas seulement dans les résultats). Ces champs peuvent être masqués à l'aide d'une feuille de style ou d'un modèle personnalisé, éventuellement après les avoir regroupés dans un jeu de champs privé.

L'interface utilisateur Webform ne permet pas de changer le type de composant. Je vois ces informations stockées dans webform_component.fieldset, vous pouvez donc probablement les modifier ici. Vous souhaitez également mettre à jour les paramètres du composant dans la colonne "supplémentaire".

David Sickmiller
la source
2

Demandez-vous si vous avez vraiment besoin que la structure de données soit intacte ou non, ou si vous avez juste besoin de conserver les données. Utilisez-vous les données du formulaire Web dans une vue? Quelqu'un dépend-il de l '«Analyse» automatisée fournie par Webform?

Si vous avez uniquement besoin d'envoyer des e-mails de confirmation pour de nouvelles soumissions, ajoutez le nouveau champ avec le même libellé, une clé différente et le type correct, puis supprimez le champ d'origine en le marquant comme `` Privé '' dans les paramètres du champ.

Les champs privés sont affichés aux utilisateurs qui ont accès aux résultats, donc cela peut ne pas fonctionner pour votre cas d'utilisation.

Vous pouvez également utiliser le module Node Clone pour cloner le formulaire Web et modifier ce champ sans perdre de données ni devoir tout ressaisir.

calebtr
la source
0

Si le champ que vous supprimez est unique à un type de contenu, alors le champ a disparu de la base de données (qui inclut ses données). Si vous supprimez un champ partagé de, le champ est supprimé de ce type de contenu avec les données propres au type de contenu.

Si vous constatez que vous devez conserver les données associées au champ mais que vous avez besoin d'un type de champ différent pour les données, vous devez planifier à l'avance.

  • Créez le nouveau champ.
  • Concevez un moyen de migrer les données de l'ancien champ vers le nouveau champ.
  • Supprimez l'ancien champ.

Une bonne solution pourrait être d'utiliser le module Feeds (pour importer dans les champs) et le module Views Data Export (pour exporter les champs vers la feuille de calcul). La procédure serait:

Configurez une vue qui répertorie toutes vos valeurs de champ de texte et affiche tous les champs que vous souhaitez migrer. Ensuite, exportez les données et choisissez le format CSV.

Utilisez des flux pour importer les données dans D7. Mappez simplement chaque champ exporté sur votre champ préféré.

d'autre part , vous pouvez lire ce tutoriel trop

Sohail
la source
Les flux importeront-ils les données du formulaire Web?
mpdonadio
Suivi de MPD: les composants Webform sont-ils considérés comme des champs? Webform ne vous permet pas de définir vos propres types de composants, sauf via des modules personnalisés, donc je suppose que les composants Webform sont tous des champs partagés?
Kevin Morse
Kevin Je ne suis pas sûr, mais je pense que oui, vous pouvez quand même l'essayer, et au cas où les flux ne fonctionneraient pas, vous pouvez essayer l'importation de formulaires
Sohail