TL;DR:
Ich versuche, ein paar Dinge zum Digest hinzuzufügen. Früher habe ich die Vorlage überschrieben, aber das geht jetzt aus unklaren Gründen nicht mehr.
Da das Überschreiben von Vorlagen schlecht ist, gibt es einige Stellen im Digest, die durch digest_custom_html ersetzt werden, aber dieser fügt den Text ein, sodass diese .html_safe angehängt bekommen müssen. Mindestens eine ist an der falschen Stelle (hat “above” im Namen, ist aber eigentlich darunter).
Ich denke, ich habe die Fähigkeiten für einen PR dazu, es sei denn, da es so einfach ist, ist es für jemand anderen einfacher zu erledigen.
Die längere, schmerzhaftere Geschichte.
Ich habe es hier gemacht: GitHub - pfaffman/discourse-add-to-summary: Add text to summary before and after title, aber das scheint nicht mehr zu funktionieren.
Ich denke, was ich tun möchte, ohne Änderungen am Kern, ist die Vorlage digest.html.erb zu überschreiben. Früher konnte ich das tun, indem ich sie in app/views/user_notifications/digest.html.erb abgelegt habe, und diese Datei wurde dann anstelle der Kern-Datei verarbeitet. Das scheint nicht mehr zu funktionieren.
Jetzt haben wir einige coole digest_custom_html wie diese:
Der aufmerksame Leser wird feststellen, dass die beliebten Themen etwa ab Zeile 78 beginnen, lange vor Zeile 277. Ich bin mir nicht sicher, wie viel Zeit ich damit verloren habe, zu denken, dass nichts passiert, weil ich an der falschen Stelle gesucht habe. Aber ich schweife ab.
Ich habe es nach after_initialize in plugin.rb geschafft.
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
Und es fügt tatsächlich Text an der Stelle hinzu, an der ich erwarte, dass er in der Vorlage geändert wird!
Leider wird er nicht als HTML, sondern als Text behandelt. Also. . . .
Ich habe in all_the_plugins nachgesehen und keine Beispiele gefunden, bei denen jemand diesen Code verwendet.
Wäre es ein PR-willkommen, wenn ich die Zeilen ändern würde, wie z. B.
\u003c%= digest_custom_html("below_popular_topics") %\u003e
und sie ersetzen durch
\u003c%= digest_custom_html("below_popular_topics").html_safe %\u003e
Und während ich dabei bin, vielleicht sicherstellen, dass die Namen der position_keys ihrer Position ähnlicher sind?