Armazenar formulários da web do Drupal 7 em código

8

Gostaria de saber se existe alguma solução para armazenar webforms em código. Para que você possa duplicá-los facilmente em outros sites e agrupá-los com seus próprios módulos. Estou olhando para algo semelhante à API de visualizações.

Se não estiver disponível, quantas pessoas estão interessadas em tal funcionalidade? Eu poderia desenvolver um módulo que pudesse lidar com o armazenamento de formulários da web no Code. E você tem alguma preocupação em criar esse módulo?

Obrigado, Jaap

Jaap Jansma
fonte
Você quer dizer formulários criados com o módulo Webform?
Mołot 4/11/2014
11
Sim eu quero dizer formas criadas com o módulo de formulário Web
Jaap Jansma
11
Na verdade, é muito fácil, basta ver como o compartilhamento do Webform faz isso. ( webform_share_export()e webform_share_node_insert()são as funções do dinheiro). Não posso dizer que aprovo o uso de eval(), mas você pode convertê-lo com a mesma facilidade para usar um objeto JSON / string serializada. A única (pequena) dificuldade que você precisa superar é como / quando o seu formulário da web é aplicado a um novo nó, é claro que é necessário um nó para anexar o formulário da web.
Clive

Respostas:

1

Na verdade não, e não há necessidade disso

  1. Se você precisar de um formulário disponível no código, os formulários da API do formulário não serão tão difíceis de escrever do zero. Ao contrário do Views, você só pode criar Webforms de tema com o ID do nó e isso mudaria de site para site, portanto, os formulários de Webform fornecidos com o módulo não serão convenientes.

  2. Se você deseja agrupar formulários com seus módulos e, por qualquer motivo, não puder usar a API de formulários, o UUID Features Integration e o Webform compartilhar fornecem maneiras de fazê-lo. Não será um código em sentido puro, mas deve funcionar.

  3. É relativamente fácil de usar hook_form_alterpara obter uma representação da API do formulário de determinado formulário da web. Obviamente, você não poderá alterá-lo facilmente no futuro, mas, novamente, ao contrário dos pontos de vista, é bom. O módulo não será danificado se alguns dados não forem exibidos. Dados não fornecidos, ou fornecidos de uma maneira que o módulo não espera, podem quebrar as coisas. Portanto, se o módulo precisar de um formulário, não será fácil editá-lo . As edições no formulário exigiriam edições no código do módulo de qualquer maneira, portanto, o código da API do formulário facilita as coisas, não é mais difícil a longo prazo, nessas situações.

Mołot
fonte
11
Embora essa seja uma boa resposta para a alternativa, acho que manter os formulários da Web em código é uma solicitação bastante razoável (não concordo que não haja necessidade disso ou que não seja realmente possível). Por exemplo, se você deseja fornecer um formulário de contato básico com um módulo que pode ser estendido pelos usuários por meio da interface do usuário, um formulário da Web seria o ideal. Construir essa interface do usuário seria uma dor real. Como o webformobjeto (ou matriz?) Fica no objeto nó, de qualquer maneira, ele pode ser serializado e reaplicado com muita facilidade.
Clive
@Clive Mas, para contato básico, por que alguém exigiria código real? Por que o nó exportado (com a Integração de recursos UUID, você pode exportar o nó para o módulo) é suficiente?
Mołot 4/11/2014
Esse módulo também sincroniza o objeto Webform?
Clive
@Clive Tanto quanto me lembro, com alguns problemas, mas sim. Ah, e se o código personalizado precisar de dados de um formulário, o formulário da Web não seria perigoso? Não conheço nenhuma maneira de tornar os campos resistentes à exclusão no Webform (mas admito que não pareci tanto).
Mołot 4/11/2014
11
De fato, há até um patch para o formulário da web para fazer a integração funcionar. Retiro :) :)
Clive