Що відбувається з даними веб-форми, коли компонент видалений? Чи можу я змінити тип компонента?


9

Я успадкував складну веб-форму з кількома сотнями подань. Одним із компонентів було Textfield, яке використовується для збору електронної адреси представника форми. Чомусь це поле Text Text, а не E-mail, яке не дозволяє мені використовувати адресу електронної пошти для надсилання підтвердження електронною поштою.

Якби я видалив компонент електронної пошти з текстового поля, що буде з усіма даними? Я припускаю, що це буде стерто.

Чи можна змінити тип компонентної форми, зберігаючи дані?

Оновлення: я використовую Drupal 7 та веб-форму 3.19


Ви використовуєте модуль веб-форми для Drupal 6 або Drupal 7?
Айяс

Drupal 7. Вибачте, я повинен це згадати.
Кевін Морз

У Drupal 7 в базі даних є місце змінити ім’я поля. Але я не впевнений, як це зробити
AgA

Відповіді:


3

Коли компонент веб-форми видалено, подані дані для цього компонента видаляються. Дані щодо інших компонентів форми зберігаються. Я підтвердив це, запитуючи таблицю MySQL webform_submitted_data на веб-формі 7.x-3.23.

Як зазначено в календарі користувачів, для кожного компонента встановлено прапорець "Приватний", який можна використовувати як функцію видалення-збереження даних ersatz, за винятком того, що користувачі, які ввійшли в систему, що мають право читати результати, все ще побачать компонент у форма (не тільки в результатах). Ці поля можна приховати за допомогою таблиці стилів або користувальницького шаблону, можливо, після того, як їх перенесуть у приватний набір полів.

Інтерфейс веб-форми не дозволяє змінювати тип компонента. Я бачу цю інформацію, що зберігається в webform_component.fieldset, тому ви, ймовірно, можете її змінити там. Ви також хочете оновити налаштування компонентів у стовпці "додатково".


2

Подумайте, чи справді вам потрібна структура даних неушкодженою чи ні, чи вам просто потрібні збережені дані. Чи використовуєте ви дані веб-форми для перегляду? Хтось залежить від автоматизованого "аналізу", який надає веб-форма?

Якщо вам потрібно лише надіслати електронні листи підтвердження для нових подань, додайте нове поле з тією ж маркуванням, іншим ключем та правильним типом, а потім придушіть початкове поле, позначивши його як "Приватне" в налаштуваннях поля.

Приватні поля відображаються користувачам, які мають доступ до результатів, тому це може не працювати для вашого випадку використання.

Крім того, використовуйте модуль Node Clone для клонування веб-форми та зміни цього поля, не втрачаючи даних або не потрібно повторно клавішувати все.


0

Якщо поле, яке ви видаляєте, унікальне для типу вмісту, то це поле відсутнє з бази даних (що включає його дані). Якщо ви видалите спільне поле з цього поля, воно видаляється з цього типу вмісту разом із даними, унікальними для типу вмісту.

Якщо ви виявите, що вам потрібно зберігати дані, пов’язані з полем, але вам потрібен інший тип поля для даних, вам потрібно спланувати заздалегідь.

  • Створіть нове поле.
  • Придумайте спосіб переміщення даних зі старого поля в нове.
  • Видаліть старе поле.

Хорошим рішенням може бути використання модуля каналів (для імпорту до полів) та модуля експорту даних переглядів (для експорту полів у електронну таблицю). Процедура буде такою:

Налаштуйте подання, в якому перераховуються всі ваші значення текстового поля та відображаються всі поля, які потрібно перемістити. Потім експортуйте дані та оберіть формат CSV.

Використовуйте канали для імпорту даних до D7. Просто зіставіть кожне експортоване поле у ​​вибраному полі.

з іншого боку , ви можете прочитати цей підручник теж


Чи канали імпортуватимуть дані веб-форми?
mpdonadio

Продовження до MPD: Чи вважаються компоненти веб-форми полями? Webform не дозволяє вам визначати власні типи компонентів, за винятком спеціальних модулів, тому я б припустив, що компоненти Webform - це всі спільні поля?
Кевін Морз

Кевін Я не впевнений, але я думаю, що ви можете спробувати це все одно, і якщо канали не вийшли, ви можете спробувати імпорт веб- форм drupal.org/project/webform_import
Sohail
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.