Co dzieje się z danymi formularza internetowego po usunięciu komponentu? Czy mogę zmienić typ komponentu?

9

Odziedziczyłem skomplikowany formularz internetowy z kilkoma setkami zgłoszeń. Jednym ze składników było pole tekstowe służące do przechwytywania adresu e-mail osoby wysyłającej formularz. Z jakiegoś powodu jest to pole tekstowe, a nie pole e-mail, co uniemożliwia mi użycie adresu e-mail do wysłania wiadomości e-mail z potwierdzeniem.

Gdybym usunął komponent pola tekstowego, co stałoby się ze wszystkimi danymi? Zakładam, że to zostanie usunięte.

Czy istnieje sposób na zmianę typu składnika formularza przy jednoczesnym zachowaniu danych?

Aktualizacja: Używam Drupal 7 i Webform 3.19

Kevin Morse
źródło
Czy używasz modułu Webform dla Drupal 6 lub Drupal 7?
Aiias,
Drupal 7. Przykro mi, że powinienem o tym wspomnieć.
Kevin Morse
W Drupal 7 jest miejsce do zmiany nazwy pola w bazie danych. Ale nie jestem pewien, jak to zrobić
AgA

Odpowiedzi:

3

Po usunięciu komponentu Webform przesłane dane dla tego komponentu są usuwane. Dane pozostałych składników formularza są zachowane. Potwierdziłem to, sprawdzając tabelę MySQL webform_submitted_data na Webform 7.x-3.23.

Jak wskazał użytkownik calebtr, dla każdego komponentu znajduje się pole wyboru „Prywatne”, które może być używane jako funkcja ersatz usuwania-ale-zapisywania-danych, z tym wyjątkiem, że zalogowani użytkownicy z uprawnieniem do odczytu wyników nadal będą widzieć komponent na formularz (nie tylko w wynikach). Te pola mogą być ukryte za pomocą arkusza stylów lub szablonu niestandardowego, potencjalnie po skorygowaniu ich w prywatny zestaw pól.

Interfejs sieciowy nie pozwala na zmianę typu komponentu. Widzę te informacje przechowywane w pliku webform_component.fieldset, więc prawdopodobnie możesz je tam zmodyfikować. Chcesz także zaktualizować ustawienia komponentu w kolumnie „dodatkowe”.

David Sickmiller
źródło
2

Zastanów się, czy naprawdę potrzebujesz nienaruszonej struktury danych, czy tylko potrzebujesz danych. Czy używasz danych formularza internetowego w widoku? Czy ktoś jest zależny od automatycznej „analizy” zapewnianej przez Webform?

Jeśli musisz tylko wysyłać wiadomości e-mail z potwierdzeniem nowych zgłoszeń, dodaj nowe pole z tą samą etykietą, innym kluczem i poprawnym typem, a następnie pomiń oryginalne pole, zaznaczając je jako „Prywatne” w ustawieniach pola.

Prywatne pola są wyświetlane użytkownikom, którzy mają dostęp do wyników, więc może to nie działać w twoim przypadku użycia.

Alternatywnie, użyj modułu Node Clone , aby sklonować formularz internetowy i zmienić to pole bez utraty danych lub konieczności ponownego wpisywania wszystkiego.

calebtr
źródło
0

Jeśli pole, które usuwasz, jest unikalne dla typu zawartości, wówczas pole nie jest pobierane z bazy danych (która obejmuje jego dane). Jeśli usuniesz wspólne pole, pole zostanie usunięte z tego typu zawartości wraz z danymi unikalnymi dla tego typu zawartości.

Jeśli okaże się, że musisz zachować dane powiązane z polem, ale potrzebujesz innego rodzaju pola dla danych, musisz planować z wyprzedzeniem.

  • Utwórz nowe pole.
  • Wymyśl sposób migracji danych ze starego pola do nowego pola.
  • Usuń stare pole.

Dobrym rozwiązaniem może być użycie modułu Kanały (do importowania do pól) i modułu eksportu danych widoków (do eksportowania pól do arkusza kalkulacyjnego). Procedura byłaby:

Skonfiguruj widok, który zawiera listę wszystkich wartości pól tekstowych i wyświetla wszystkie pola, które chcesz migrować. Następnie eksport danych i wybierz format CSV.

Użyj kanałów, aby zaimportować dane do D7. Wystarczy zmapować każde wyeksportowane pole na preferowane pole.

Z drugiej strony warto przeczytać ten poradnik zbyt

Sohail
źródło
Czy kanały importują dane z formularza internetowego?
mpdonadio
Kontynuacja MPD: Czy komponenty Webform są uważane za pola? Webform nie pozwala ci definiować własnych typów komponentów, z wyjątkiem niestandardowych modułów, więc zakładam, że wszystkie komponenty Webform są polami współdzielonymi?
Kevin Morse
Kevin Nie jestem pewien, ale myślę, że tak, możesz spróbować mimo to, a jeśli kanały się nie sprawdzą
Sohail