Was passiert mit Webform-Daten, wenn eine Komponente gelöscht wird? Kann ich einen Komponententyp ändern?

9

Ich habe ein kompliziertes Webformular mit mehreren hundert Einsendungen geerbt. Eine der Komponenten war ein Textfeld, mit dem die E-Mail-Adresse des Formularübermittlers erfasst wurde. Aus irgendeinem Grund ist dies ein Textfeld und kein E-Mail-Feld, das mich daran hindert, die E-Mail-Adresse zum Senden einer Bestätigungs-E-Mail zu verwenden.

Wenn ich die Textfeld-E-Mail-Komponente löschen würde, was würde mit allen Daten passieren? Ich gehe davon aus, dass es gelöscht wird.

Gibt es eine Möglichkeit, den Typ einer Formularkomponente zu ändern, während die Daten erhalten bleiben?

Update: Ich verwende Drupal 7 und Webform 3.19

Kevin Morse
quelle
Verwenden Sie das Webform-Modul für Drupal 6 oder Drupal 7?
Aiias
Drupal 7. Entschuldigung, hätte das erwähnen sollen.
Kevin Morse
In Drupal 7 können Sie den Feldnamen in der Datenbank ändern. Aber ich bin nicht sicher, wie es geht
AgA

Antworten:

3

Wenn eine Webform-Komponente gelöscht wird, werden die übermittelten Daten für diese Komponente gelöscht. Die Daten für die anderen Komponenten des Formulars bleiben erhalten. Ich habe dies bestätigt, indem ich die MySQL-Tabelle webform_submitted_data in Webform 7.x-3.23 abgefragt habe.

Wie der Benutzer calebtr angegeben hat, gibt es für jede Komponente ein Kontrollkästchen "Privat", das als Ersatzfunktion zum Löschen, aber Speichern der Daten verwendet werden kann, mit der Ausnahme, dass angemeldete Benutzer mit der Berechtigung zum Lesen der Ergebnisse die Komponente weiterhin sehen das Formular (nicht nur in den Ergebnissen). Diese Felder können mithilfe eines Stylesheets oder einer benutzerdefinierten Vorlage ausgeblendet werden, möglicherweise nachdem sie in einem privaten Feldsatz zusammengefasst wurden.

Die Webform-Benutzeroberfläche ermöglicht keine Änderung des Komponententyps. Ich sehe diese Informationen in webform_component.fieldset gespeichert, sodass Sie sie dort wahrscheinlich ändern können. Sie möchten auch die Komponenteneinstellungen in der Spalte "extra" aktualisieren.

David Sickmiller
quelle
2

Überlegen Sie, ob die Datenstruktur wirklich intakt sein muss oder nicht oder ob nur die Daten erhalten bleiben sollen. Verwenden Sie die Webformulardaten in einer Ansicht? Ist jemand von der automatisierten "Analyse" abhängig, die Webform bereitstellt?

Wenn Sie nur Bestätigungs-E-Mails für neue Einreichungen senden müssen, fügen Sie das neue Feld mit derselben Beschriftung, einem anderen Schlüssel und dem richtigen Typ hinzu und unterdrücken Sie das ursprüngliche Feld, indem Sie es in den Feldeinstellungen als "Privat" markieren.

Private Felder werden Benutzern angezeigt, die Zugriff auf Ergebnisse haben, sodass dies für Ihren Anwendungsfall möglicherweise nicht funktioniert.

Verwenden Sie alternativ das Node Clone- Modul, um das Webformular zu klonen und dieses Feld zu ändern, ohne Daten zu verlieren oder alles neu eingeben zu müssen.

calebtr
quelle
0

Wenn das von Ihnen gelöschte Feld für einen Inhaltstyp eindeutig ist, wird das Feld aus der Datenbank entfernt (einschließlich der Daten). Wenn Sie ein freigegebenes Feld aus löschen, wird das Feld zusammen mit den für den Inhaltstyp eindeutigen Daten aus diesem Inhaltstyp entfernt.

Wenn Sie feststellen, dass Sie die mit dem Feld verknüpften Daten beibehalten müssen, aber einen anderen Feldtyp für die Daten benötigen, müssen Sie vorausplanen.

  • Erstellen Sie das neue Feld.
  • Entwickeln Sie eine Möglichkeit, die Daten vom alten Feld in das neue Feld zu migrieren.
  • Löschen Sie das alte Feld.

Eine gute Lösung könnte darin bestehen, das Feeds-Modul (zum Importieren in Felder) und das Views Data Export-Modul (zum Exportieren von Feldern in die Tabelle) zu verwenden. Das Verfahren wäre:

Richten Sie eine Ansicht ein, in der alle Ihre Textfeldwerte aufgelistet sind und alle Felder angezeigt werden, die Sie migrieren möchten. Dann Daten exportieren und CSV-Format wählen.

Verwenden Sie Feeds, um die Daten in D7 zu importieren. Ordnen Sie einfach jedes exportierte Feld Ihrem bevorzugten Feld zu.

auf der anderen Seite können Sie diese lesen Tutorial zu

Sohail
quelle
Importieren Feeds Webform-Daten?
mpdonadio
Follow-up zu MPD: Werden Webform-Komponenten als Felder betrachtet? In Webform können Sie Ihre eigenen Komponententypen nur über benutzerdefinierte Module definieren. Ich würde also davon ausgehen, dass Webform-Komponenten alle gemeinsam genutzte Felder sind.
Kevin Morse
Kevin Ich bin mir nicht sicher, aber ich denke ja, Sie könnten es trotzdem versuchen, und falls Feeds nicht funktionieren, können Sie versuchen, Webform zu importieren drupal.org/project/webform_import
Sohail