| Zusammenfassung | Fügt ein Kontaktformular am Anfang jedes Themas mit dem Tag contact hinzu. Übermittelte Informationen werden an die Gruppe oder Kategorie gesendet, die für den Empfang konfiguriert ist. |
|
| Repository-Link | https://github.com/jericson/discourse-contact-plugin | |
| Installationsanleitung | So installieren Sie Plugins in Discourse |
Funktionen
Wenn das Kontaktformular-Plugin aktiviert ist, wird ein Kontaktformular am Anfang jedes Themas mit dem Tag contact platziert. Über das Formular übermittelte Daten werden an eine Kategorie oder Gruppe gesendet, die für den Empfang von E-Mails von contact_form_email konfiguriert ist.[1] Wie bei herkömmlichen Kontaktformularen ist kein Konto auf der Website erforderlich, um etwas einzureichen.
Hier ist, was ein Besucher sehen könnte:
Beachten Sie, dass dies ein normaler Beitrag ist, der beliebige Anweisungen enthalten kann, die Sie im Textkörper angeben möchten.[2] Derzeit sind die Feldnamen fest codiert und es erfolgt keine wirkliche Validierung. Weitere Informationen finden Sie im TODO-Abschnitt unten. Nach dem Senden der Nachricht wird sie im Nachrichten-Feed der konfigurierten Gruppe angezeigt:
Abhängig von der Konfiguration ihrer E-Mail-Benachrichtigungen können Mitglieder der konfigurierten Gruppe auch eine E-Mail von Discourse erhalten:
Konfiguration
Um dieses Plugin nutzen zu können, müssen Sie eingehende E-Mails konfigurieren, um neue Themen oder Gruppennachrichten zu erstellen. Es ist nicht erforderlich, Antworten per E-Mail einzurichten, da das Plugin keine E-Mails sendet. Es kapert die API, um eingehende E-Mails zu simulieren. (Dennoch ist die Antwort per E-Mail eine nützliche Funktion!)
Insbesondere erfordert dieses Plugin:
email_inundenable_staged_users
müssen aktiviert sein.
Sobald aktiviert, wird jedem Thema mit dem Tag contact ein Kontaktformular über den topic-above-posts-Plugin-Outlet hinzugefügt.
An eine Gruppe senden
Da Personen dieses Formular zur Übermittlung ihrer persönlichen Daten verwenden werden, ist das Senden der Ergebnisse an eine geschlossene Gruppe die sicherste Option.
- Erstellen Sie eine neue Gruppe für die Personen, die Kontakte bearbeiten werden. (Ich nenne sie normalerweise der Einfachheit halber „Kontakt“, aber es könnte alles sein, einschließlich einer vorhandenen Gruppe.)
- Fügen Sie Mitglieder hinzu, die Kontaktinformationen erhalten werden.
- Aktivieren Sie keine der Zugriffsoptionen. Dies sollte eine geschlossene Gruppe sein.
- Ändern Sie die Sichtbarkeit der Gruppe entsprechend den Gegebenheiten Ihrer Organisation.
- Setzen Sie die „Benutzerdefinierte eingehende E-Mail-Adresse“ auf denselben Wert wie die Einstellung
contact_form_email. (Standardmäßig ist dies „contact@example.com“.)
…
An eine Kategorie senden
Das Senden an eine Kategorie ist auch über die Kategorieeinstellung „Benutzerdefinierte eingehende E-Mail-Adresse“ möglich. Stellen Sie sicher, dass auch „E-Mails von anonymen Benutzern ohne Konto akzeptieren“ aktiviert ist.
Das Senden an eine Kategorie wird jedoch nicht für Kontaktinformationen empfohlen! Wenn aus irgendeinem Grund die Zugriffsrechte für die Kategorie geändert werden, könnten persönliche Informationen an Personen (oder Suchmaschinen) weitergegeben werden, die keinen Zugriff haben sollten. Es ist viel unwahrscheinlicher, dass dies geschieht, wenn Kontakte stattdessen an Gruppennachrichten gesendet werden.
Begrenzen, wer Kontaktformulare hinzufügen kann
Es könnte ziemlich seltsam sein, wenn Kontaktformulare überall auftauchen. Daher möchten Sie vielleicht einschränken, wer das Tag contact verwenden kann. Dazu erstellen Sie eine neue Tag-Gruppe:
- Wählen Sie auf der Seite
/tagsdas Schraubenschlüsselsymbol in der oberen rechten Ecke. - Wählen Sie „Tag-Gruppen verwalten“ und dann „
Neue Gruppe“. - Geben Sie einen geeigneten Namen ein (z. B. „Nur Personal“), fügen Sie das Tag
contacthinzu und wählen Sie „Tags sind für alle sichtbar, aber nur die folgenden Gruppen können sie verwenden“. - Wählen Sie die Gruppe aus, der Sie das Hinzufügen eines Kontaktformulars erlauben möchten (normalerweise „Personal“ oder „Admins“) und speichern Sie die Tag-Gruppe.
CHANGELOG
-
- April 2024: Alpha-Version.
TODO
- Ich möchte Tests einrichten, um sicherzustellen, dass beim Ändern nichts kaputt geht. Ich möchte insbesondere überprüfen, ob Personen ohne Konto ihre Daten übermitteln können.
- Während der Tests habe ich ein großes Datenleck entdeckt. Ich habe diese spezielle Schwachstelle entfernt, aber ich könnte wirklich Hilfe beim Testen gebrauchen.
- Das Formular führt keine Validierung durch. Die einzige wirkliche Anforderung ist, dass das E-Mail-Feld wie eine E-Mail aussieht. Wenn jemand eine Antwort ohne E-Mail-Adresse hinterlässt, schlägt das Formular leise fehl.
- Es gibt keinen Schutz vor Spam oder Missbrauch.
- Der Code ist im Grunde „my-first-plugin“-Qualität, basierend auf Beispielen, die veraltete Konventionen verwendeten. Vorschläge zum Stil sind willkommen.
- Mir gefällt die Verknüpfung des Kontaktformulars mit einem Thema, das mit „contact“ getaggt ist, aber es ist umständlich und wahrscheinlich unnötig. Ich erwäge, eine neue Route hinzuzufügen, die nur das Kontaktformular für Einfachheit halber enthält.
- Die Kontaktdaten werden in der Datenbank gespeichert, aber es wäre hilfreich, ein Admin-Panel zu haben, um eine Liste der Kontakte anzuzeigen.
- Das Formular ist auf meine aktuellen Anforderungen festgelegt, aber es wäre praktisch, etwas Flexibilität bei den Feldern zu haben, nach denen es fragt.





