Adicionando campos extras ao formulário de contato do site

18

Isso me parece estranhamente difícil. O que eu pensei que seria apenas o caso de adicionar campos extras, como adicionar campos aos Tipos de Conteúdo. Mas não. Não consigo localizar nenhum recurso para adicionar um campo de número de telefone ao formulário de contato? Alguém aí sabe?

Purplemonkey
fonte

Respostas:

20

Esperar que os campos de formulários sejam configurados como tipos de conteúdo é uma generalização excessiva. Os tipos de conteúdo são para conteúdo (texto, imagem etc.) do site e, mais especificamente, no Drupal, para nós (a principal parte do conteúdo no Drupal). Usando o módulo Field and Field UI, é possível adicionar facilmente campos ao tipo de conteúdo usando uma UI da Web. Exceto em alguns casos específicos, um formulário não faz parte do conteúdo de um site, mas uma maneira de os usuários adicionarem e editarem informações, às vezes conteúdo e às vezes não.

Para personalizar (ou seja, alterar) um formulário no Drupal, a maneira usual é criar um módulo personalizado que implemente o gancho . Dessa forma, você pode adicionar elementos de formulário a formulários existentes fornecidos por outros módulos. Para usar as informações dos campos adicionados ao formulário de contato dessa maneira, você também precisará alterar o email enviado usando uma implementação de hook_mail_alter () . O guia a seguir mostra as duas etapas do Drupal 7. (Observe também este comentário )hook_form_FORM_ID_alter

Uma solução sem código é usar o módulo Webform que fornece um tipo de conteúdo de formulário e permite adicionar formulários como conteúdo ao seu site. Esses formulários são configuráveis ​​por meio de uma interface da Web. Várias etapas de processamento podem ser configuradas para as informações enviadas por meio desses formulários. Um deles é o envio de email. Usá-lo para um formulário de contato personalizado é um caso de uso comum. O Webform vem com seus próprios conceitos e pontos de extensão. Embora possa revelar-se uma solução mais fácil e rápida para formulários simples únicos, também pode revelar-se um tamanho excessivo e complexo para personalizar quando um determinado limite de recursos for atingido. O custo para adicionar recursos extras a um formulário da Web pode superar o ganho de evitar a gravação de um módulo personalizado.

Pierre Buyle
fonte
1

Depende do módulo que você está usando para o seu formulário de contato. Alguns módulos fornecerão uma interface de back-end que não requer programação para adicionar campos adicionais. Um módulo muito popular com essa funcionalidade é o Webform.

Salvo isso, os formulários no Drupal podem ser alterados escrevendo um módulo personalizado usando o gancho hook_form_alter. Existem muitos tutoriais disponíveis no desenvolvimento de mdoule e no uso desse gancho específico.

mesch
fonte
1

Se você estiver usando o módulo de contato principal, espero que o módulo de campos do formulário de contato seja concluído em breve no Drupal 7.

Este módulo permite adicionar campos adicionais ao formulário de contato amplo do site, como a interface do módulo de perfil. O administrador pode definir os campos e esses estarão disponíveis no formulário de contato em todo o site. Observe que esses campos não estarão disponíveis no formulário de contato pessoal por enquanto, pois não vejo nenhuma necessidade específica.

Se você quer algo agora: 4 opções:

  • Use um tipo de nó e transforme-o em um formulário de contato.
  • Use um formulário da web.
  • Construa um módulo personalizado
  • Ou melhor: forquilha / ajude o módulo contact_field! A página do projeto acabou de ser atualizada, pelo menos está se movendo novamente e, se terminar, ofereceria uma maneira muito agradável de adicionar campos, assim como nos tipos de conteúdo.

(adicionando isso para a pesquisa bot arena;))

Robin
fonte