TL;DR:
Estou tentando adicionar algumas coisas ao resumo. Eu costumava substituir o template, mas não posso mais fazer isso, por razões não claras.
Como substituir templates é ruim, existem alguns lugares no resumo que são substituídos por digest_custom_html, mas ele insere o texto, então esses precisam ter .html_safe anexado. Pelo menos um está no lugar errado (tem “acima” no nome, mas na verdade está abaixo).
Acho que tenho as habilidades para um PR sobre isso, a menos que, por ser tão simples, seja mais fácil para outra pessoa fazer.
A história mais longa e dolorosa.
Eu fiz isso aqui: GitHub - pfaffman/discourse-add-to-summary: Add text to summary before and after title, mas isso parece ter parado de funcionar.
Acho que o que quero fazer, sem alterações no core, é substituir o template digest.html.erb. Eu costumava conseguir fazer isso colocando-o em app/views/user_notifications/digest.html.erb e esse arquivo seria processado em vez do do core. Isso não parece mais funcionar.
Agora, temos alguns digest_custom_html legais como este:
O leitor atento notará que os tópicos populares começam por volta da linha 78, muito antes da linha 277. Não tenho certeza de quanto tempo perdi pensando que nada estava acontecendo porque eu estava olhando no lugar errado. Mas divago.
Eu consegui fazer isso em plugin.rb after_initialize.
require_dependency "user_notifications"
module ::UserNotificationsHelperOverride
def digest_custom_html(position_key)
puts "fazendo melhoria no resumo: #{position_key}"
if position_key == "below_popular_topics"
puts "fazendo o html customizado para a posição abaixo dos tópicos populares"
# HTML customizado para a posição dos tópicos populares
"<div class='custom-popular-topics'>MEU TEXTO LEGAL</div>"
else
puts "fazendo o super para #{position_key}"
super
end
end
end
E isso de fato está adicionando texto no lugar que eu esperaria que fosse alterado no template!
. . . .
Olhei em all_the_plugins e não encontrei exemplos de ninguém usando esse código.
Seria um PR-welcome se eu alterasse as linhas como
<%= digest_custom_html("below_popular_topics") %>
e as substituísse por
<%= digest_custom_html("below_popular_topics").html_safe %>
E, enquanto estou nisso, talvez garantir que os nomes das position_keys sejam mais semelhantes à sua posição?