Что происходит с данными Webform при удалении компонента? Могу ли я изменить тип компонента?

9

Я унаследовал сложную веб-форму с несколькими сотнями заявок. Одним из компонентов было текстовое поле, используемое для захвата адреса электронной почты отправителя формы. По какой-то причине это текстовое поле, а не поле электронной почты, которое не позволяет мне использовать адрес электронной почты для отправки подтверждения по электронной почте.

Если бы я удалил компонент электронной почты текстового поля, что случилось бы со всеми данными? Я предполагаю, что это будет стерто.

Есть ли способ изменить тип компонента формы при сохранении данных?

Обновление: я использую Drupal 7 и Webform 3.19

Кевин Морс
источник
Используете ли вы модуль Webform для Drupal 6 или Drupal 7?
Aiias
Drupal 7. Извините, должен был упомянуть это.
Кевин Морс
В Drupal 7 есть место для изменения имени поля в базе данных. Но я не уверен, как это сделать
AgA

Ответы:

3

При удалении компонента Webform отправленные данные для этого компонента удаляются. Данные для других компонентов формы сохраняются. Я подтвердил это, запросив таблицу MySQL webform_submitted_data в Webform 7.x-3.23.

Как указал пользователь calebtr, для каждого компонента есть флажок «Приватный», который можно использовать как функцию удаления, но сохранения данных, за исключением того, что вошедшие в систему пользователи с правом чтения результатов по-прежнему будут видеть компонент на форма (не только в результатах). Эти поля могут быть скрыты с использованием таблицы стилей или пользовательского шаблона, возможно, после преобразования их в закрытый набор полей.

Пользовательский интерфейс Webform не позволяет изменять тип компонента. Я вижу эту информацию, хранящуюся в webform_component.fieldset, так что вы, вероятно, можете изменить ее там. Вы также хотели бы обновить настройки компонента в столбце «extra».

Дэвид Сикмиллер
источник
2

Подумайте, действительно ли вам нужна структура данных или нет, или вам просто нужно сохранить данные. Используете ли вы данные веб-формы в представлении? Кто-нибудь зависит от автоматизированного «Анализа», который предоставляет Webform?

Если вам нужно только отправить подтверждение по электронной почте для новых заявок, добавьте новое поле с такой же маркировкой, другим ключом и правильным типом, а затем подавьте исходное поле, отметив его как «Личное» в настройках поля.

Частные поля показываются пользователям, которые имеют доступ к результатам, поэтому это может не работать в вашем случае использования.

В качестве альтернативы используйте модуль Node Clone для клонирования веб-формы и изменения этого поля без потери данных или повторного ввода всех ключей.

calebtr
источник
0

Если поле, которое вы удаляете, является уникальным для типа контента, то это поле исчезает из базы данных (которая включает в себя его данные). Если вы удаляете общее поле из, оно удаляется из этого типа контента вместе с данными, уникальными для данного типа контента.

Если вы обнаружите, что вам нужно сохранить данные, связанные с полем, но вам нужен другой тип поля для данных, вам нужно планировать заранее.

  • Создайте новое поле.
  • Разработайте способ переноса данных из старого поля в новое поле.
  • Удалить старое поле.

Хорошим решением может быть использование модуля Feeds (для импорта в поля) и модуля экспорта данных Views (для экспорта полей в электронную таблицу). Процедура будет:

Настройте представление, в котором перечислены все значения текстового поля и отображены все поля, которые вы хотите перенести. Затем экспортируйте данные и выберите формат CSV.

Используйте каналы для импорта данных в D7. Просто сопоставьте каждое экспортируемое поле с вашим предпочтительным полем.

с другой стороны, вы можете прочитать этот урок тоже

Sohail
источник
Будут ли каналы импортировать данные Webform?
mpdonadio
Продолжение до MPD: Являются ли компоненты Webform полями? Webform не позволяет вам определять свои собственные типы компонентов, кроме как через пользовательские модули, поэтому я бы предположил, что все компоненты Webform являются общими полями?
Кевин Морс
Кевин Я не уверен, но я думаю, что да, вы можете попробовать это в любом случае, и в случае, если каналы не сработали, вы можете попробовать импортировать webform drupal.org/project/webform_import
Sohail