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

Ajax

开发平台:

Others

  1. require_dependency 'spam_protection'
  2. class Trackback < Feedback
  3.   belongs_to :article
  4.   content_fields :excerpt
  5.   validates_presence_of :title, :excerpt, :url
  6.   attr_accessible :url, :blog_name, :title, :excerpt, :ip, :published, :article_id
  7.   def initialize(*args, &block)
  8.     super(*args, &block)
  9.     self.title ||= self.url
  10.     self.blog_name ||= ""
  11.   end
  12.   before_create :process_trackback
  13.   def process_trackback
  14.     if excerpt.length >= 251
  15.       # this limits excerpt to 250 chars, including the trailing "..."
  16.       self.excerpt = excerpt[0..246] << "..."
  17.     end
  18.   end
  19.   def article_allows_feedback?
  20.     return true if article.allow_pings?
  21.     errors.add(:article, 'Article is not pingable')
  22.     false
  23.   end
  24.   def blog_allows_feedback?
  25.     return true unless blog.global_pings_disable
  26.     errors.add(:article, "Pings are disabled")
  27.     false
  28.   end
  29.   def originator
  30.     blog_name
  31.   end
  32.   def body
  33.     excerpt
  34.   end
  35.   def body=(newval)
  36.     self.excerpt = newval
  37.   end
  38.   def rss_author(xml)
  39.   end
  40.   def atom_author(xml)
  41.     xml.author do
  42.       xml.name blog_name
  43.       xml.uri url
  44.     end
  45.   end
  46.   def atom_title(xml)
  47.     xml.title "Trackback from #{blog_name}: #{title} on #{article.title}", :type => 'html'
  48.   end
  49.   def rss_title(xml)
  50.     xml.title "Trackback from #{blog_name}: #{title} on #{article.title}"
  51.   end
  52. end