blog.rb
1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
class Blog < Folder
has_many :posts, :class_name => 'Article', :foreign_key => 'parent_id', :source => :children, :conditions => [ 'type != ?', 'RssFeed' ], :order => 'created_at DESC'
attr_accessor :feed_attrs
attr_accessor :filter
after_create do |blog|
blog.children << RssFeed.new(:name => 'feed', :profile => blog.profile, :feed_item_description => 'body')
blog.feed = blog.feed_attrs
end
settings_items :posts_per_page, :type => :integer, :default => 20
settings_items :title, :type => :string, :default => _('My blog')
def initialize(*args)
super(*args)
self.name = 'blog'
end
def self.short_description
_('Blog')
end
def self.description
_('A blog, inside which you can put other articles.')
end
# FIXME isn't this too much including just to be able to generate some HTML?
include ActionView::Helpers::TagHelper
def to_html
content_tag('div', body) + tag('hr')
end
def folder?
true
end
def blog?
true
end
def feed
self.children.find(:first, :conditions => {:type => 'RssFeed'})
end
def feed=(attrs)
if self.feed
self.feed.update_attributes(attrs)
else
self.feed_attrs = attrs
end
end
end