Email di riepilogo aggiornamenti utilizzando il plugin

Ciao a tutti,

Sto cercando di migliorare la nostra email digest aggiungendo una nuova sezione: una casella che visualizza un breve elenco di lavori (ognuno con titolo e località) recuperati da un’API esterna.

Cosa sto cercando di fare:

  • Modificare il modello email esistente:
    Voglio aggiungere una nuova casella al nostro attuale digest email che visualizzerà gli annunci di lavoro.
  • Approccio basato su plugin:
    La mia idea è di creare un plugin che recuperi i dati dei lavori dall’API e inserisca queste informazioni nel modello email. Ho visto che alcune aree di queste email possono essere modificate tramite l’interfaccia utente, il che mi ha portato a credere che potrebbe essere possibile modificare i file del modello sottostanti tramite un plugin.


La sfida:

Non riesco ad accedere a questi file del modello dall’interno del plugin. Questo solleva un paio di domande:

  1. Accesso ai file del modello:
    È possibile accedere e modificare questi file del modello email utilizzando un plugin? Se sì, qual è l’approccio consigliato?
  2. Soluzioni alternative:
    Se l’accesso diretto ai file non è fattibile, esistono altri metodi o best practice per iniettare dati personalizzati (come i nostri annunci di lavoro) nel digest email?

Apprezzo qualsiasi intuizione, esperienza o suggerimento che potreste avere riguardo a questo approccio. Grazie in anticipo per il vostro aiuto!

1 Mi Piace

Ci sarebbero alcune domande aggiuntive: ad esempio, un plugin potrebbe creare/modificare questo file user_notifications.digest.custom.text.below_popular_topics? Sto usando un’istanza Discourse self-hosted in docker.

In generale, puoi fare qualsiasi cosa in un plugin. Non c’è nessun sandbox per proteggere i plugin da un core protetto.

Il problema riguarda più il imparare come farlo e implementarlo in modo che sopravviva agli aggiornamenti.

Dovresti spostare questa richiesta su Dev.

3 Mi Piace

user_notifications.digest.custom.text.below_popular_topics è una chiave per il sistema di internazionalizzazione (i18n) di Discourse. Nel codice, la stringa tradotta appropriata verrà recuperata dal database / dalla configurazione.

La mia sensazione è che dovresti cercare un altro modo per implementare il comportamento desiderato, piuttosto che cambiare regolarmente questo testo (che dovresti cambiare per ogni lingua utente utilizzata sul tuo forum).

Uno di questi modi sarebbe estendere

per includere il tuo contenuto.

1 Mi Piace