Modulo di contatto

Non funzionante nell’ultima versione di Discourse

Ho aggiornato di recente Discourse e questo plugin ha mandato in crash il sito. (Per essere chiari, è più probabile che sia il risultato delle mie modifiche orribili che di Discourse stesso. Al momento non ho la larghezza di banda per trovare la soluzione, quindi lascio questo avviso per gli altri.)

:information_source: Riepilogo Aggiunge un modulo di contatto nella parte superiore di qualsiasi argomento etichettato come contact. Le informazioni inviate tramite il modulo verranno inviate al gruppo o alla categoria configurati per riceverle.
:hammer_and_wrench: Link al Repository https://github.com/jericson/discourse-contact-plugin
:open_book: Guida all’Installazione Come installare i plugin in Discourse

Funzionalità

Quando è abilitato, il plugin Modulo di Contatto posiziona un modulo di contatto all’inizio di qualsiasi argomento etichettato come contact. I dati inviati tramite il modulo vengono inviati a una categoria o a un gruppo configurato per ricevere la posta da contact_form_email.[1] Come i moduli di contatto tradizionali, non è richiesto avere un account sul sito per inviare.

Ecco cosa potrebbe vedere un visitatore:

Si noti che questo è un post normale che può contenere tutte le istruzioni che si desidera includere nel corpo.[2] Attualmente i nomi dei campi sono codificati in modo fisso e non viene eseguita alcuna convalida reale, ma vedere la sezione TODO qui sotto. Dopo l’invio del messaggio, apparirà nel feed dei messaggi del gruppo configurato:

A seconda di come sono configurate le notifiche email, i membri del gruppo configurato potrebbero anche ricevere un’email da Discourse:

Configurazione

Per utilizzare questo plugin, è necessario configurare la posta in arrivo per creare nuovi argomenti o messaggi di gruppo. Non è necessario impostare la risposta via email poiché il plugin non invia effettivamente email. Dirotta l’API per simulare la posta in arrivo. (Detto questo, la risposta via email è una funzionalità utile!)

In particolare, questo plugin richiede:

  • email_in e
  • enable_staged_users

per essere abilitati.

Una volta abilitato, qualsiasi argomento etichettato come contact avrà un modulo di contatto aggiunto all’outlet del plugin topic-above-posts.

Invia a un gruppo

Poiché le persone utilizzeranno questo modulo per inviare le proprie informazioni personali, inviare i risultati a un gruppo chiuso è l’opzione più sicura.

  1. Creare un nuovo gruppo per le persone che gestiranno i contatti. (Di solito lo chiamo “Contatto” per semplicità, ma potrebbe essere qualsiasi cosa, incluso un gruppo esistente.)
  2. Aggiungere i membri che riceveranno le informazioni di contatto.
  3. Non spuntare nessuna delle opzioni di accesso. Questo dovrebbe essere un gruppo chiuso.
  4. Modificare la visibilità del gruppo come ragionevole per la propria organizzazione.
  5. Impostare l’“Indirizzo email in arrivo personalizzato” in modo che sia uguale all’impostazione contact_form_email. (Per impostazione predefinita, questo è “contact@example.com”.)

Invia a una categoria

È anche possibile inviare a una categoria utilizzando l’impostazione di categoria “Indirizzo email in arrivo personalizzato”. Assicurarsi di abilitare anche “Accetta email da utenti anonimi senza account”.

Tuttavia, l’invio a una categoria non è consigliato per le informazioni di contatto! Se per qualche motivo le autorizzazioni di accesso alla categoria vengono modificate, potrebbero essere esposte informazioni personali a persone (o motori di ricerca) che non dovrebbero avere accesso. È molto meno probabile che ciò accada se i contatti vengono inviati ai messaggi di gruppo.

Limitare chi può aggiungere moduli di contatto

Potrebbe essere piuttosto strano vedere moduli di contatto spuntare ovunque, quindi si potrebbe voler limitare chi può usare il tag contact. Per farlo, creare un nuovo gruppo di tag:

  1. Dalla pagina /tags, selezionare la chiave inglese nell’angolo in alto a destra.
  2. Selezionare “Gestisci Gruppi di Tag” e quindi selezionare " :heavy_plus_sign: Nuovo Gruppo".
  3. Inserire un nome appropriato (ad esempio, “Solo Staff”), aggiungere il tag contact e selezionare “I tag sono visibili a tutti, ma solo i seguenti gruppi possono usarli”.
  4. Scegliere il gruppo che si desidera autorizzare ad aggiungere un modulo di contatto (di solito “staff” o “admins”) e salvare il gruppo di tag.

CRONOLOGIA DELLE MODIFICHE (CHANGELOG)

  • 25 aprile 2024: Rilascio Alpha.

DA FARE (TODO)

  • Vorrei impostare dei test per assicurarmi che nulla si rompa quando apporto modifiche. Voglio in particolare verificare che le persone senza account possano inviare i loro dati.
  • Durante i test ho scoperto una grave perdita di dati. Ho rimosso quella particolare vulnerabilità, ma avrei davvero bisogno di aiuto per i test.
  • Il modulo non esegue alcuna convalida. L’unico requisito reale è che il campo email assomigli a un’email. Se qualcuno lascia una risposta senza aggiungere un’email, il modulo fallisce silenziosamente.
  • Non c’è protezione contro spam o abusi.
  • Il codice è molto simile alla qualità di my-first-plugin basato su esempi che utilizzavano convenzioni obsolete. Qualsiasi suggerimento sullo stile è benvenuto.
  • Mi piace avere il modulo di contatto associato a un argomento etichettato come “contact”, ma è contorto e probabilmente non necessario. Sto pensando di aggiungere un nuovo percorso che sia solo il modulo di contatto per semplicità.
  • I dati di contatto sono memorizzati nel database, ma potrebbe essere utile avere un pannello di amministrazione per visualizzare un elenco dei contatti.
  • Il modulo è fissato ai miei requisiti attuali, ma sarebbe utile avere una certa flessibilità riguardo ai campi che richiede.

  1. Questa impostazione predefinita è “contact@example.com” ma può essere configurata per accettare email reali. ↩︎

  2. È persino possibile rispondere al modulo di contatto, nel bene o nel male. ↩︎

13 Mi Piace

Questo non funziona. Puoi aggiornare @jericson

Funziona per me.

1 Mi Piace

Non è un tema, è un plugin. Vedi Install plugins on a self-hosted site.

5 Mi Piace

L’ho installato. Ho aggiunto la mia email a contact_form_email, abilitato email_in, aggiunto 'everyone' a email in allowed groups, enable_staged_users. Ho provato il modulo, ma non ricevo nessuna email.

2 Mi Piace

Ottimo affare! Potrebbe essere utile per i futuri lettori sapere cosa l’ha risolto per te.

Non installo il plugin come tema, immagino :wink:

1 Mi Piace

Puoi pubblicare degli screenshot del plugin in azione? Il “Modulo di contatto” può essere modificato/configurato?

1 Mi Piace

Certamente! Vedi il post modificato.

Purtroppo no. Ma le PR sono benvenute!

1 Mi Piace

Plugin piuttosto interessante. Presumo che l’indirizzo email contraffatto non venga mostrato all’utente finale.

Corretto. Ho un altro plugin (ancora più grezzo di questo) per ottenere recensioni anonime. Uso review@example.com per instradare quei messaggi alla destinazione corretta. È solo una stringa.

1 Mi Piace