TL;DR :
J’essaie d’ajouter des éléments au résumé. J’avais l’habitude de remplacer le modèle, mais je ne peux plus le faire, pour des raisons obscures.
Parce que remplacer les modèles est mauvais, il y a certains endroits dans le résumé qui sont remplacés par digest_custom_html, mais cela insère du texte, donc ceux-ci ont besoin de .html_safe ajouté. Au moins un est au mauvais endroit (a “above” dans le nom, mais est en réalité en dessous).
Je pense avoir les compétences pour une PR sur ce sujet, sauf que, parce que c’est si simple, il pourrait être plus facile pour quelqu’un d’autre de le faire.
L’histoire plus longue et plus douloureuse.
Je l’ai fait ici : GitHub - pfaffman/discourse-add-to-summary: Add text to summary before and after title mais cela semble ne plus fonctionner.
Je pense que ce que je veux faire, sans modifier le cœur, est de remplacer le modèle digest.html.erb. J’avais l’habitude de pouvoir le faire en le plaçant dans app/views/user_notifications/digest.html.erb et ce fichier serait traité à la place de celui du cœur. Cela ne semble plus fonctionner.
Maintenant, nous avons du code cool digest_custom_html comme ceci :
Le lecteur averti remarquera que les sujets populaires commencent vers la ligne 78, bien avant la ligne 277. Je ne suis pas sûr du temps que j’ai perdu à penser que rien ne se passait parce que je regardais au mauvais endroit. Mais je digresse.
J’ai réussi à faire ceci dans plugin.rb after_initialize.
require_dependency "user_notifications"
module ::UserNotificationsHelperOverride
def digest_custom_html(position_key)
puts "doing improved the digest: #{position_key}"
if position_key == "below_popular_topics"
puts "doing the custom html for above_popular_topics"
# Custom HTML for the popular topics position
"\u003cdiv class='custom-popular-topics'\u003eMY COOOOOOOL TEXT\u003c/div\u003e"
else
puts "doing the super for #{position_key}"
super
end
end
end
Et cela ajoute bien du texte à l’endroit où je m’attendrais à ce qu’il soit modifié dans le modèle !
Hélas, ce n’est pas traité comme du HTML, mais comme du texte. Donc. . . .
J’ai regardé dans all_the_plugins et je n’ai trouvé aucun exemple de quelqu’un utilisant ce code.
Serait-ce un PR-welcome si je changeais les lignes comme
\u003c%= digest_custom_html("below_popular_topics") %\u003e
et les remplacer par
\u003c%= digest_custom_html("below_popular_topics").html_safe %\u003e
Et, pendant que j’y suis, peut-être m’assurer que les noms des position_key sont plus proches de leur position ?