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
Respuestas:
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".
fuente
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.
fuente
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.
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
fuente