A ce sujet, j'ai regardé comment était faite les pages "sites amis", "team", "changelog"... Elles sont toutes crées à partir du static_controller.
Elles utilisent le static_helper pour remplacer à la volée les balises du style {{friends_list}} par du code HTML dynamique.
J'ai essayé de faire une balise {{incitation}} pour pouvoir l'utiliser sur la page d'accueil et dans la bannière en même temps, mais ça ne marche malheureusement pas pour les bannières.
En fait, pour le faire marcher, je dois appliquer cette modification sur banner.rb:
class Banner < ActiveRecord::Base
scope :active, -> { where(active: true) }
validates :title, presence: { message: "Le titre ne peut être vide" },
length: { maximum: 255, message: "Le titre est trop long" }
validates :content, presence: { message: "La bannière ne peut être vide" }
[...]
def content
- read_attribute(:content).to_s.html_safe+ read_attribute(:content).to_s
end
end
J'ai besoin de faire ça parce que le static_helper utilise la méthode gsub qui pose problème avec les ActiveSupport::SafeBuffer (je crois que j'ai ce problème).
Je ne suis pas assez expert en Ruby, mais j'ai un peu peur que ça ouvre des failles de type cross-scripting. Bon, d'un autre côté, seul les admins peuvent éditer le code des bannières, donc peut être que l'on peut faire ce changement. Je ne sais pas 🤷
[^] # Re: des références monsieur !
Posté par Adrien Dorsaz (site web personnel, Mastodon) . En réponse à l’entrée du suivi Mettre plus en avant le bandeau "Faites vivre LinuxFr". Évalué à 2 (+0/-0). Dernière modification le 30 juillet 2020 à 23:02.
Hello,
A ce sujet, j'ai regardé comment était faite les pages "sites amis", "team", "changelog"... Elles sont toutes crées à partir du
static_controller.Elles utilisent le
static_helperpour remplacer à la volée les balises du style{{friends_list}}par du code HTML dynamique.J'ai essayé de faire une balise
{{incitation}}pour pouvoir l'utiliser sur la page d'accueil et dans la bannière en même temps, mais ça ne marche malheureusement pas pour les bannières.En fait, pour le faire marcher, je dois appliquer cette modification sur
banner.rb:J'ai besoin de faire ça parce que le
static_helperutilise la méthodegsubqui pose problème avec lesActiveSupport::SafeBuffer(je crois que j'ai ce problème).Je ne suis pas assez expert en Ruby, mais j'ai un peu peur que ça ouvre des failles de type cross-scripting. Bon, d'un autre côté, seul les admins peuvent éditer le code des bannières, donc peut être que l'on peut faire ce changement. Je ne sais pas 🤷