Formulaire de contact

:information_source: Résumé Ajoute un formulaire de contact en haut de tout sujet marqué contact. Les informations soumises via le formulaire seront envoyées au groupe ou à la catégorie configuré pour les recevoir.
:hammer_and_wrench: Lien vers le dépôt \u003chttps://github.com/jericson/discourse-contact-plugin\u003e
:open_book: Guide d’installation Comment installer des plugins dans Discourse

Fonctionnalités

Une fois activé, le plugin Formulaire de contact place un formulaire de contact en haut de tout sujet marqué contact. Les données soumises via le formulaire sont envoyées à une catégorie ou un groupe configuré pour recevoir les e-mails de contact_form_email.[1] Comme les formulaires de contact traditionnels, il n’est pas nécessaire d’avoir un compte sur le site pour soumettre.

Voici ce qu’un visiteur pourrait voir :

Notez qu’il s’agit d’une publication ordinaire qui peut contenir toutes les instructions que vous souhaitez inclure dans le corps.[2] Actuellement, les noms des champs sont codés en dur et aucune validation réelle n’est effectuée, mais consultez la section TODO ci-dessous. Une fois le message envoyé, il apparaîtra dans le flux de messages du groupe configuré :

Selon la configuration de leurs notifications par e-mail, les membres du groupe configuré peuvent également recevoir un e-mail de Discourse :

Configuration

Pour utiliser ce plugin, vous devez configurer la réception d’e-mails pour créer de nouveaux sujets ou des messages de groupe. Il n’est pas nécessaire de configurer la réponse par e-mail car le plugin n’envoie pas réellement d’e-mails. Il détourne l’API pour simuler la réception d’e-mails. (Cela dit, la réponse par e-mail est une fonctionnalité utile !)

En particulier, ce plugin nécessite :

  • email_in et
  • enable_staged_users

d’être activés.

Une fois activé, tout sujet marqué contact aura un formulaire de contact ajouté à l’outlet de plugin topic-above-posts.

Envoyer à un groupe

Étant donné que les gens utiliseront ce formulaire pour soumettre leurs informations personnelles, l’envoi des résultats à un groupe fermé est l’option la plus sûre.

  1. Créez un nouveau groupe pour les personnes qui traiteront les contacts. (Je l’appelle généralement « Contact » pour simplifier, mais cela pourrait être n’importe quoi, y compris un groupe existant.)
  2. Ajoutez les membres qui recevront les informations de contact.
  3. Ne cochez pas les options d’accès. Il doit s’agir d’un groupe fermé.
  4. Modifiez la visibilité du groupe de manière raisonnable pour votre organisation.
  5. Définissez l’« Adresse e-mail entrante personnalisée » comme étant la même que le paramètre contact_form_email. (Par défaut, il s’agit de « contact@example.com ».)

Envoyer à une catégorie

L’envoi à une catégorie est également possible en utilisant le paramètre de catégorie « Adresse e-mail entrante personnalisée ». Assurez-vous également d’activer « Accepter les e-mails des utilisateurs anonymes sans compte ».

Il n’est cependant pas recommandé d’envoyer à une catégorie pour les informations de contact ! Si, par hasard, les autorisations d’accès à la catégorie sont modifiées, cela pourrait exposer des informations personnelles à des personnes (ou à des moteurs de recherche) qui ne devraient pas y avoir accès. Il est beaucoup moins probable que cela se produise si les contacts sont envoyés à des messages de groupe à la place.

Limiter qui peut ajouter des formulaires de contact

Il pourrait être assez étrange d’avoir des formulaires de contact qui apparaissent partout, vous pourriez donc vouloir limiter qui peut utiliser le tag contact. Pour ce faire, créez un nouveau groupe de tags :

  1. Depuis la page /tags, sélectionnez la clé à molette en haut à droite.
  2. Sélectionnez « Gérer les groupes de tags » puis « :heavy_plus_sign: Nouveau groupe ».
  3. Remplissez un nom approprié (par exemple, « Personnel uniquement »), ajoutez le tag contact et sélectionnez « Les tags sont visibles par tout le monde, mais seuls les groupes suivants peuvent les utiliser ».
  4. Choisissez le groupe que vous souhaitez autoriser à ajouter un formulaire de contact (généralement « personnel » ou « administrateurs ») et enregistrez le groupe de tags.

JOURNAL DES MODIFICATIONS

  • 25 avril 2024 : Version alpha.

À FAIRE

  • J’aimerais mettre en place des tests pour m’assurer que rien ne casse lorsque je fais des modifications. Je veux en particulier vérifier que les personnes sans compte peuvent soumettre leurs données.
  • Lors des tests, j’ai découvert une fuite de données majeure. J’ai supprimé cette vulnérabilité particulière, mais j’aurais vraiment besoin d’aide pour les tests.
  • Le formulaire n’effectue aucune validation. La seule véritable exigence est que le champ e-mail ressemble à un e-mail. Si quelqu’un laisse une réponse sans ajouter d’e-mail, le formulaire échoue silencieusement.
  • Il n’y a aucune protection contre le spam ou les abus.
  • Le code est de qualité « mon-premier-plugin » basé sur des exemples qui utilisaient des conventions obsolètes. Toutes suggestions de style sont les bienvenues.
  • J’aime associer le formulaire de contact à un sujet marqué « contact », mais c’est compliqué et probablement inutile. J’envisage d’ajouter une nouvelle route qui ne serait que le formulaire de contact pour plus de simplicité.
  • Les données de contact sont stockées dans la base de données, mais il pourrait être utile d’avoir un panneau d’administration pour voir une liste des contacts.
  • Le formulaire est figé selon mes exigences actuelles, mais il serait pratique d’avoir une certaine flexibilité quant aux champs qu’il demande.

  1. Ce paramètre est défini par défaut sur « contact@example.com » mais peut être configuré pour accepter de vrais e-mails. ↩︎

  2. Il est même possible de répondre au formulaire de contact, pour le meilleur ou pour le pire. ↩︎

13 « J'aime »

Cela ne fonctionne pas. Pouvez-vous mettre à jour @jericson

Ça marche pour moi.

1 « J'aime »

Ce n’est pas un thème, c’est un plugin. Voir Install plugins on a self-hosted site.

5 « J'aime »

Je l’ai installé. J'ai ajouté mon e-mail à contact_form_email, activé email_in, ajouté 'everyone' dans les groupes autorisés pour email in, enable_staged_users. J’ai essayé le formulaire, non, je ne reçois aucun e-mail.

2 « J'aime »

Bonne affaire ! Cela pourrait aider les futurs lecteurs de savoir ce qui a résolu le problème pour vous.

Je suppose que le plugin ne s’installe pas comme un thème :wink:

1 « J'aime »

Pouvez-vous poster quelques captures d’écran du plugin en action ? Le « Formulaire de contact » peut-il être modifié/configuré ?

1 « J'aime »

Bien sûr ! Regardez le post édité.

Malheureusement non. Mais les PRs sont les bienvenus !

1 « J'aime »

Plugin assez cool. L’adresse e-mail usurpée ne s’affiche pas à l’utilisateur final, je présume.

Correct. J’ai un autre plugin (encore plus rudimentaire que celui-ci) pour obtenir des avis anonymes. J’utilise review@example.com pour acheminer ces messages vers la bonne destination. C’est juste une chaîne de caractères.

1 « J'aime »