¿Qué sucede con los datos de Webform cuando se elimina un componente? ¿Puedo cambiar un tipo de componente?


9

Heredé un formulario web complicado con varios cientos de presentaciones. Uno de los componentes era un campo de texto utilizado para capturar la dirección de correo electrónico del remitente del formulario. Por alguna razón, este es un campo de texto y no un campo de correo electrónico que me impide utilizar la dirección de correo electrónico para enviar un correo electrónico de confirmación.

Si tuviera que eliminar el componente de correo electrónico del campo de texto, ¿qué pasaría con todos los datos? Supongo que se borraría.

¿Hay alguna forma de cambiar el tipo de un componente de formulario mientras se conservan los datos?

Actualización: estoy usando Drupal 7 y Webform 3.19


¿Está utilizando el módulo Webform para Drupal 6 o Drupal 7?
Aiias

Drupal 7. Lo siento debería haber mencionado eso.
Kevin Morse

En Drupal 7, hay un lugar para cambiar el nombre del campo en la base de datos. Pero no estoy seguro de cómo hacerlo
AgA

Respuestas:


3

Cuando se elimina un componente de Webform, se eliminan los datos enviados para ese componente. Los datos para los otros componentes del formulario se conservan. Lo he confirmado al consultar la tabla MySQL webform_submitted_data en Webform 7.x-3.23.

Como lo indicó el usuario calebtr, hay una casilla de verificación "Privado" para cada componente que se puede usar como una función de borrar-pero-guardar-los-datos, excepto que los usuarios registrados con el privilegio de leer los resultados aún verán el componente en el formulario (no solo en los resultados). Estos campos podrían ocultarse usando una hoja de estilo o una plantilla personalizada, posiblemente después de acorralarlos en un conjunto de campos privados.

La interfaz de usuario de Webform no permite cambiar el tipo de componente. Veo esta información almacenada en webform_component.fieldset, por lo que probablemente podría modificarla allí. También querrá actualizar la configuración del componente en la columna "extra".


2

Considere si realmente necesita la estructura de datos intacta o no, o si solo necesita preservar los datos. ¿Está utilizando los datos del formulario web en una vista? ¿Alguien depende del 'Análisis' automatizado que proporciona Webform?

Si solo necesita enviar correos electrónicos de confirmación para nuevos envíos, agregue el nuevo campo con la misma etiqueta, una clave diferente y el tipo correcto, y luego suprima el campo original marcándolo como 'Privado' en la configuración del campo.

Los campos privados se muestran a los usuarios que tienen acceso a los resultados, por lo que esto puede no funcionar para su caso de uso.

Alternativamente, use el módulo Node Clone para clonar el formulario web y cambiar ese campo sin perder datos o tener que volver a escribir todo.


0

Si el campo que elimina es exclusivo de un tipo de contenido, el campo desaparecerá de la base de datos (que incluye sus datos). Si elimina un campo compartido de, el campo se elimina de ese tipo de contenido junto con los datos exclusivos del tipo de contenido.

Si descubre que necesita mantener los datos asociados con el campo pero necesita un tipo diferente de campo para los datos, debe planificar con anticipación.

  • Crea el nuevo campo.
  • Diseñe una forma de migrar los datos del campo antiguo al campo nuevo.
  • Eliminar el viejo campo.

Una buena solución podría ser usar el módulo Feeds (para importar a los campos) y el Módulo de exportación de datos de vistas (para exportar los campos a la hoja de cálculo). El procedimiento sería:

Configure una vista que enumere todos los valores de su campo de texto y muestre todos los campos que desea migrar. Luego, exporte los datos y elija el formato CSV.

Utilice feeds para importar los datos a D7. Simplemente asigne cada campo exportado a su campo preferido.

por otro lado, es posible que desee leer este tutorial también


¿Feeds importará datos de formularios web?
mpdonadio

Seguimiento a MPD: ¿Se consideran los componentes del formulario web campos? Webform no le permite definir sus propios tipos de componentes, excepto a través de módulos personalizados, por lo que supongo que los componentes de Webform son todos campos compartidos.
Kevin Morse

Kevin No estoy seguro, pero creo que sí, podrías intentarlo de todos modos, y en caso de que los feeds no funcionen, puedes intentar la importación de formularios
Sohail
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.