E avremmo davvero bisogno di un esempio funzionante di un plugin che abbia un’azione di tipo invio modulo al suo interno. Il nostro plugin ha due cose, a grandi linee:
alcuni elementi di configurazione
un modulo in cui un utente inserirebbe del testo, e poi ‘invierebbe’ per l’elaborazione
Quindi, se qualcuno conosce un plugin che abbia queste due tipologie di funzionalità, apprezzeremmo davvero un link per poter esaminare come funziona.
Puoi dire di più su cosa stai facendo? Cosa stai cambiando con il modulo? Può essere un componente tematico? Quello che stai inviando è a un endpoint esistente o a uno che stai aggiungendo?
@pfaffman Vogliamo creare un semplice modulo che richieda all’utente quattro cose:
Mittente
Destinatario
Oggetto
Corpo
L’utente compilerà questi campi e poi farà clic su un pulsante per attivare un endpoint che invia l’email.
Nello specifico, il modulo includerà i quattro elementi e, una volta cliccato il pulsante “Invia”, invocherà l’endpoint per inviare il messaggio.
Non sono sicuro se sia esattamente quello che stai cercando, ma l’obiettivo principale è consentire a un utente amministratore di inserire testo (l’oggetto e il corpo dell’email) e fare clic su un pulsante per inviarlo a un utente in Discourse.
In futuro, vorremmo estendere questo in modo che l’utente possa attivare più messaggi da un mittente a più destinatari. Vogliamo manipolare parametri come il numero totale di messaggi e il ritardo tra ciascuno, per controllare quanti messaggi vengono inviati e quanto sono distanziati.
Forse torna indietro di un passo e descrivi il problema effettivo che stai cercando di risolvere.
Intendi inviare un’e-mail diretta (in modo che il messaggio non esista in Discourse) o inviare un PM che arrivi all’utente (che nella maggior parte dei casi genererà una notifica e-mail)?
Vuoi cambiare chi è il mittente del PM? Sembra l’unica cosa che manca dall’interfaccia PM esistente, giusto?
Grazie per la chiarificazione! Per fornire un po’ più di contesto, lavoriamo con una vasta base di utenti e vogliamo ri-engaggiare gli utenti che non hanno interagito con la nostra app da un po’. L’obiettivo è inviare un messaggio privato (PM) a un gran numero di utenti da un mittente specifico, con controllo su diversi parametri:
Mittente: L’utente amministratore specificherà direttamente il nome utente del mittente nel modulo.
Oggetto e Corpo: L’amministratore può personalizzare sia l’oggetto che il corpo del PM.
Controllo del volume: Vogliamo controllare quanti messaggi vengono inviati contemporaneamente per evitare di spamare gli utenti.
Tempi: La questione chiave è assicurarci di poter controllare la velocità di invio dei messaggi, per evitare di sopraffare il nostro dominio email e di essere segnalati come spam. Dovremo poter distanziare i messaggi definendo ritardi tra l’invio di ciascun messaggio (e l’email corrispondente) per prevenire il triggering dei filtri antispam.
L’obiettivo finale è far sì che gli utenti aprano il messaggio privato (che genererà anche una notifica email) e incoraggiarli a tornare nella nostra app.
Abbiamo già uno script Ruby semplice che può svolgere questo compito ed è pienamente funzionante. Attualmente, lo avviamo manualmente accedendo al VM tramite SSH, il che è un po’ macchinoso. Quello che vorremmo ora è adattare questo script in un plugin in modo che un amministratore possa facilmente attivarlo tramite l’interfaccia utente, con la possibilità di inserire le impostazioni (mittente, oggetto, corpo, numero di messaggi, ritardo tra di loro, ecc.) direttamente dall’interfaccia di amministrazione.
Vorremmo ottenere tutto questo tramite un’interfaccia plugin che consenta all’amministratore di inserire facilmente queste impostazioni, avviare il processo e monitorare il progresso dell’invio dei messaggi.
Probabilmente farei qualcosa come avere gli utenti in un gruppo e pianificare di inviare a tutti gli utenti del gruppo. Quando un messaggio viene inviato, imposteresti un valore in un user_custom_field e useresti un argomento esistente come testo e mittente del messaggio. Un lavoro si eseguirebbe ogni tanto e invierebbe quanti messaggi vuoi. Metterei il gruppo e il valore del campo personalizzato nelle impostazioni.
In questo modo non avresti bisogno di un’interfaccia o di creare un nuovo percorso; puoi semplicemente usare le impostazioni esistenti. E potresti vedere cosa è successo usando l’esploratore di dati, quindi non sarebbe necessario sviluppare un’interfaccia per entrambi.
Ma se vuoi creare alcuni campi che le persone inseriscono nell’UX, dovresti dare un’occhiata alla cosa Form di cui ho già parlato.