Bonjour,
Je tente de comprendre pourquoi la cuisson postérieure ne fonctionne pas pour le plugin Landing Pages et comment je pourrais la faire fonctionner (si possible) sans modifier le plugin. Mais si je devais le faire, que pourrais-je entreprendre ? Ruby n’est pas mon point fort.
Sur mon instance Discourse, j’ai installé le composant PDF-Preview ainsi que le plugin Discourse-Chart. Cependant, lors du rendu du message, celui-ci n’est absolument pas cuit. Ou du moins, il ne prend pas en compte les plugins et les composants de thème existants.
Pour rendre le message dans les Landing Pages, le code suivant est appliqué et exécuté.
Dans le fichier html.erb :
::LandingPages::Post.html(@topic_view.posts.first).html_safe
qui appelle le code suivant dans discourse-landing-pages/lib/landing-pages/post.rb :
class ::LandingPages::Post
def self.html(post, remove_topic_image: true)
fragment = Nokogiri::XML.fragment(post.cooked)
if remove_topic_image && topic_image_sha1 = post.topic&.image_upload&.sha1
if image_node = fragment.css("a[href*='#{topic_image_sha1}']").first
image_node.parent.remove
end
end
fragment.to_html
end
end
À partir d’ici, je ne suis pas sûr de ce qui se passe. Je suppose que post.cooked retourne simplement le texte du message déjà cuit, mais cela signifie que cela a déjà été exécuté lors du chargement de la page…
Merci pour votre aide !