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

18

Cela me semble étrangement difficile. Ce que je pensais serait simplement 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?

Purplemonkey
la source

Réponses:

20

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 le contenu (texte, image, etc.) du site Web, et plus spécifiquement, dans Drupal, pour les nœuds (le principal élément de contenu dans Drupal). En utilisant le module Field et Field UI, on peut facilement ajouter des champs au type de contenu en utilisant une interface 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 . 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 de Drupal 7. (Notez également ce commentaire )hook_form_FORM_ID_alter

Une solution non codée consiste à utiliser le module Webform qui fournit un type de contenu de formulaire 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.

Pierre Buyle
la source
1

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.

À moins que cela, 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 l'utilisation de ce crochet particulier.

mesch
la source
1

Si vous utilisez le module Contact de base, espérons que le module Champs de formulaire de contact pourrait être bientôt terminé 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 se déplacer à 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 des robots de recherche;))

Robin
la source