Tenho um cliente que gostaria de incluir anúncios nos e-mails de resumo e notificação. Eu “criei” um plugin que permite adicionar algum texto ao e-mail de resumo (o que, na minha opinião, precisa de atualizações para acompanhar as alterações feitas naquele modelo).
Não gosto de ter que sobrescrever todo o modelo para personalizar esses e-mails.
Seria possível incluir uma maneira de adicionar conteúdo a esses e-mails sem sobrescrever o modelo?
O plugin funciona pegando um ID de tópico em um campo personalizado e incluindo o raw da última postagem do tópico como o texto adicionado ao e-mail (logo antes ou depois do cabeçalho). Embora eu ache que seja um truque bastante inteligente, isso parece uma solução um pouco complicada demais para sugerir a inclusão no núcleo. Talvez haja uma maneira de o plugin de anúncios aplicar anúncios internos aos e-mails de resumo e digest?
Gerenciando um plugin frágil
Talvez eu devesse escrever um teste que compare o e-mail de resumo com o plugin desativado com o e-mail de resumo com o plugin ativado, mas sem configuração para adicionar nada ao e-mail? Assim, eu capturaria alterações no modelo do núcleo?
Pelo que entendi, digest_custom_html e digest_custom_text já implementam hooks para digest.html.erb e digest.text.erb. Portanto, uma implementação básica dessa solicitação envolveria a adição de mais desses hooks?
Uma implementação mais avançada poderia fornecer sub-templates, que poderiam ser usados para fornecer aos autores de plugins código de estilo e formatação mantido pelo Discourse.
Entendi corretamente que sua implementação seria possível com um digest_custom_html("before_preheader") adicionado a digest.html.erb?