O que acontece com os dados do Webform quando um componente é excluído? Posso alterar um tipo de componente?

9

Eu herdei um formulário da Web complicado com várias centenas de envios. Um dos componentes era um campo de texto usado para capturar o endereço de email do remetente do formulário. Por alguma razão, este é um campo de texto e não um campo de email que me impede de usar o endereço de email para enviar um email de confirmação.

Se eu fosse excluir o componente de email do campo de texto, o que aconteceria com todos os dados? Estou assumindo que seria apagado.

Existe alguma maneira de alterar o tipo de um componente do formulário enquanto preserva os dados?

Atualização: Estou usando o Drupal 7 e o Webform 3.19

Kevin Morse
fonte
Você está usando o módulo Webform para Drupal 6 ou Drupal 7?
Aiias 15/06
Drupal 7. Desculpe, deveria ter mencionado isso.
Kevin Morse
No Drupal 7, há um lugar para alterar o nome do campo no banco de dados. Mas eu não tenho certeza de como fazê-lo
AgA

Respostas:

3

Quando um componente Webform é excluído, os dados enviados para esse componente são excluídos. Os dados para outros componentes do formulário são preservados. Confirmei isso consultando a tabela MySQL webform_submitted_data no Webform 7.x-3.23.

Como o calebtr do usuário indicou, há uma caixa de seleção "Privada" para cada componente que pode ser usado como um recurso de exclusão-salvar-salvar-dados, exceto que os usuários conectados com o privilégio de ler os resultados ainda verão o componente em o formulário (não apenas nos resultados). Esses campos podem ser ocultados usando uma folha de estilo ou modelo personalizado, potencialmente depois de encurralá-los em um conjunto de campos privado.

A interface do usuário do Webform não permite a alteração do tipo de componente. Vejo essas informações armazenadas em webform_component.fieldset, portanto você provavelmente poderá modificá-las lá. Você também deseja atualizar as configurações do componente na coluna "extra".

David Sickmiller
fonte
2

Considere se você realmente precisa da estrutura de dados intacta ou não, ou se apenas precisa dos dados preservados. Você está usando os dados do formulário da web em uma exibição? Alguém depende da 'Análise' automatizada que o Webform fornece?

Se você só precisar enviar e-mails de confirmação para novos envios, adicione o novo campo com a mesma rotulagem, uma chave diferente e o tipo correto e, em seguida, suprima o campo original marcando-o como 'Particular' nas configurações de campo.

Os campos particulares são mostrados aos usuários que têm acesso aos resultados; portanto, isso pode não funcionar no seu caso de uso.

Como alternativa, use o módulo Clone do para clonar o formulário da web e alterar esse campo sem perder dados ou precisar digitar novamente tudo.

calebtr
fonte
0

Se o campo excluído for exclusivo para um tipo de conteúdo, o campo será excluído do banco de dados (que inclui os dados). Se você excluir um campo compartilhado de, o campo será removido desse tipo de conteúdo junto com os dados exclusivos para o tipo de conteúdo.

Se você achar que precisa manter os dados associados ao campo, mas precisar de um tipo diferente de campo, planeje com antecedência.

  • Crie o novo campo.
  • Crie uma maneira de migrar os dados do campo antigo para o novo campo.
  • Exclua o campo antigo.

Uma boa solução pode ser usar o módulo Feeds (para importar para campos) e o Views Data Export Module (para exportar campos para a planilha). O procedimento seria:

Configure uma exibição que lista todos os seus valores de campo de texto e exibe todos os campos que você deseja migrar. Em seguida, exporte os dados e escolha o formato CSV.

Use feeds para importar os dados para D7. Apenas mapeie cada campo exportado para o seu campo preferido.

por outro lado, você pode querer ler este tutorial também

Sohail
fonte
Os feeds importam dados do formulário da Web?
mpdonadio
Acompanhamento do MPD: Os componentes do Webform são considerados campos? O Webform não permite que você defina seus próprios tipos de componentes, exceto por meio de módulos personalizados, portanto, eu presumo que os componentes do Webform sejam todos campos compartilhados?
Kevin Morse
Kevin Eu não tenho certeza, mas eu acho que sim, você pode experimentá-lo de qualquer maneira, e no caso alimenta não trabalho fora, você pode tentar webform importação drupal.org/project/webform_import
Sohail