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

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

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

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

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

9 голосов | спросил Kevin Morse 16 J0000006Europe/Moscow 2013, 00:55:24

3 ответа


2

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

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

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

ответил David Sickmiller 25 AM00000050000005331 2015, 05:40:53
1

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

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

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

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

ответил calebtr 28 J0000006Europe/Moscow 2013, 03:38:47
0

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

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

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

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

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

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

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

ответил Sohail 16 J0000006Europe/Moscow 2013, 02:29:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132