comment.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:1k
源码类别:

Ajax

开发平台:

Others

  1. require_dependency 'spam_protection'
  2. require 'timeout'
  3. class Comment < Feedback
  4.   belongs_to :article
  5.   belongs_to :user
  6.   content_fields :body
  7.   validates_presence_of :author, :body
  8.   attr_accessor :user_agent
  9.   attr_accessor :referrer
  10.   attr_accessor :permalink
  11.   def notify_user_via_email(user)
  12.     if user.notify_via_email?
  13.       EmailNotify.send_comment(self, user)
  14.     end
  15.   end
  16.   def interested_users
  17.     users = User.find_boolean(:all, :notify_on_comments)
  18.     self.notify_users = users
  19.     users
  20.   end
  21.   def default_text_filter
  22.     blog.comment_text_filter.to_text_filter
  23.   end
  24.   def atom_author(xml)
  25.     xml.author { xml.name author }
  26.   end
  27.   def rss_author(xml)
  28.   end
  29.   def atom_title(xml)
  30.     xml.title "Comment on #{article.title} by #{author}", :type => 'html'
  31.   end
  32.   def rss_title(xml)
  33.     xml.title "Comment on #{article.title} by #{author}"
  34.   end
  35.   protected
  36.   def article_allows_feedback?
  37.     return true if article.allow_comments?
  38.     errors.add(:article, "Article is not open to comments")
  39.     false
  40.   end
  41.   def originator
  42.     author
  43.   end
  44.   def additional_akismet_options
  45.     { :user_agent => user_agent,
  46.       :referrer   => referrer,
  47.       :permalink  => permalink }
  48.   end
  49.   def self.html_map(field=nil)
  50.     html_map = { :body => true }
  51.     if field
  52.       html_map[field.to_sym]
  53.     else
  54.       html_map
  55.     end
  56.   end
  57.   def content_fields
  58.     [:body]
  59.   end
  60. end