Radiant tip van de dag
14/04/2010
Comment-spammers kiezen vaak de artikels waar al het meeste comments op staan om hun vuiligheid achter te laten. Vaak zijn dat steeds dezelfde, wat oudere artikels. Heel wat CMS systemen hebben dan ook de mogelijkheid om de commentaar mogelijkheid op oudere artikels automatisch uit te schakelen. Radiant CMS heeft dat helaas niet.
Omdat ik het beu was om steeds spamcomments voor dezelfde artikels in mijn moderation queue te vinden, heb ik een kleine Raketask gemaakt. Het zoekt alle artikels ouder dan 6 maand, waar commentaar toegestaan is, en schakelt de commentaar mogelijkheid op dat artikel uit.
Voeg deze code toe aan de Rakefile in je Radiant hoofdfolder:
namespace :onderhoud do
desc "Commentaar af op oude artikels"
task :disable_comments => :environment do
posts = Page.find(:all, :conditions => ["published_at < ?
and enable_comments = ?", 6.months.ago, true])
posts.each do |post|
post.enable_comments = false
post.save!
puts "Disabled comments on #{post.slug}"
end
end
end
Voeg dan een cronjob toe die volgende regel elke dag uitvoert:
RAILS_ENV=production rake -s onderhoud:disable_comments
Et voila, een pak minder te modereren spam.