web-dev-qa-db-fra.com

Ajout de champs supplémentaires au formulaire de contact du site

Cela me semble étrangement difficile. Ce que je pensais serait juste un cas d'ajout de champs supplémentaires un peu comme l'ajout de champs aux types de contenu. Mais non. Je ne trouve aucune installation à ajouter disons un champ de numéro de téléphone au formulaire de contact? Quelqu'un sait-il?

17
Purplemonkey

Attendre que les champs de formulaires soient configurés comme des types de contenu est une généralisation excessive. Les types de contenu sont pour content (texte, image, etc.) du site Web, et plus spécifiquement, dans Drupal, pour nœuds (le contenu principal de Drupal). En utilisant le module Field et Field UI, on peut facilement ajouter champs au type de contenu en utilisant une interface utilisateur Web. À l'exception de certains cas spécifiques, un formulaire ne fait pas partie du contenu d'un site Web, mais plutôt un moyen pour les utilisateurs d'ajouter et de modifier des informations, parfois du contenu et parfois non.

Pour personnaliser (c'est-à-dire modifier) ​​un formulaire dans Drupal, la manière habituelle est de créer un module personnalisé qui implémente le hook_form_FORM_ID_altercrochet . De cette façon, vous pouvez ajouter des éléments de formulaire à des formulaires existants fournis par d'autres modules. Pour utiliser les informations des champs ajoutés au formulaire de contact de cette manière, vous devrez également modifier le courrier envoyé en utilisant une implémentation de hook_mail_alter () . Le guide suivant vous guide à travers les deux étapes dans Drupal 7. (Notez également ce commentaire )

Une solution non codée consiste à utiliser le module Webform qui fournit un type de contenu form et vous permet d'ajouter des formulaires en tant que contenu à votre site Web. Ces formulaires sont configurables via une interface utilisateur Web. Différentes étapes de traitement peuvent être configurées pour les informations soumises via ces formulaires. L'un d'eux est l'envoi d'e-mails. L'utiliser pour un formulaire de contact personnalisé est un cas d'utilisation courant. Webform est livré avec ses propres concepts et points d'extension. Bien qu'il puisse s'avérer être une solution plus facile et plus rapide pour des formulaires simples à usage unique, il peut également s'avérer être surdimensionné et complexe à personnaliser une fois qu'un certain seuil de fonctionnalités a été atteint. Le coût pour ajouter des fonctionnalités supplémentaires à un formulaire Web peut alors surpasser le gain d'éviter d'écrire un module personnalisé en premier lieu.

20
Pierre Buyle

Cela dépend du module que vous utilisez pour votre formulaire de contact. Certains modules fourniront une interface dorsale qui ne nécessite aucune programmation pour ajouter des champs supplémentaires. Un module très populaire avec cette fonctionnalité est Webform.

Sauf que, les formulaires dans Drupal peuvent être modifiés en écrivant un module personnalisé en utilisant le crochet hook_form_alter. Il existe de nombreux tutoriels sur le développement de mdoule et en utilisant ce crochet particulier.

1
mesch

Si vous utilisez le module de contact principal, espérons que le module Champs du formulaire de contact pourrait bientôt se terminer pour Drupal 7.

Ce module permet d'ajouter des champs supplémentaires au formulaire de contact à l'échelle du site comme l'interface du module de profil. L'administrateur peut définir les champs et ceux-ci seront disponibles sur le formulaire de contact à l'échelle du site. Veuillez noter que ces champs ne seront pas disponibles pour le formulaire de contact personnel pour l'instant car je ne vois pas de besoins spécifiques.

Si vous voulez quelque chose maintenant: 4 options:

  • Utilisez un type de nœud et transformez-le en formulaire de contact.
  • Utilisez un formulaire Web.
  • Créer un module personnalisé
  • Ou encore mieux: fork/aidez le module contact_field! La page du projet vient d'être mise à jour, elle est au moins en train de bouger à nouveau et offrirait, une fois terminée, une très belle façon d'ajouter des champs, tout comme sur les types de contenu.

(en ajoutant ceci pour l'arène du robot de recherche;))

1
Robin

Voici un exemple de code qui montre comment ajouter des champs personnalisés au formulaire de contact à l'échelle du site via l'api des formulaires: nouvel exemple de champs de formulaire .

Prendre plaisir!

0
Druvision