Formulaire de contact

Cassé dans la dernière version de Discourse

J’ai récemment mis à jour Discourse et ce plugin a fait planter le site. (Pour être clair, c’est probablement le résultat de mes modifications horribles plutôt que de Discourse lui-même. Je n’ai pas actuellement la bande passante pour trouver la solution, donc je laisse juste cet avertissement pour les autres.)

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

Fonctionnalités

Lorsqu’il est activé, le plugin Contact Form place un formulaire de contact en haut de tout sujet étiqueté contact. Les données soumises via le formulaire sont envoyées à une catégorie ou un groupe configuré pour recevoir le courrier 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 normale 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 fil de messages du groupe configuré :

Selon la manière dont leurs notifications par e-mail sont configurées, les membres du groupe configuré peuvent également recevoir un e-mail de Discourse :

Configuration

Afin d’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-mail. Il détourne l’API pour simuler un courrier entrant. (Ceci 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 étiqueté contact aura un formulaire de contact ajouté à la sortie du 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 géreront les contacts. (J’ai l’habitude de l’appeler « Contact » par souci de simplicité, 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 appropriée pour votre organisation.
  5. Définissez l’« Adresse e-mail entrante personnalisée » pour qu’elle soit identique au 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 ».

L’envoi à une catégorie n’est cependant pas recommandé 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 de voir des formulaires de contact apparaître ici et là, vous voudrez peut-être limiter qui peut utiliser l’étiquette contact. Pour ce faire, créez un nouveau groupe d’étiquettes :

  1. Depuis la page /tags, sélectionnez la clé à molette dans le coin supérieur droit.
  2. Sélectionnez « Gérer les groupes d’étiquettes » puis sélectionnez " :heavy_plus_sign: Nouveau Groupe".
  3. Renseignez un nom approprié (par exemple, « Personnel uniquement »), ajoutez l’étiquette contact et sélectionnez « Les étiquettes 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 « staff » ou « admins ») et enregistrez le groupe d’étiquettes.

JOURNAL DES MODIFICATIONS

  • 25 avril 2024 : Version Alpha.

À FAIRE

  • J’aimerais configurer des tests pour m’assurer que rien ne casse lorsque j’apporte des modifications. Je veux particulièrement vérifier que les personnes sans compte peuvent soumettre leurs données.
  • Pendant les 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 très largement de qualité my-first-plugin basé sur des exemples qui utilisaient des conventions obsolètes. Toute suggestion concernant le style est la bienvenue.
  • J’aime que le formulaire de contact soit associé à un sujet étiqueté « contact », mais c’est compliqué et probablement inutile. J’envisage d’ajouter une nouvelle route qui est simplement 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 adapté à 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 vraies adresses e-mail. ↩︎

  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 »