Class: SimpleForum::Post
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- SimpleForum::Post
- Defined in:
- app/models/simple_forum/post.rb
Class Method Summary collapse
Instance Method Summary collapse
- #deletable_by?(user, is_moderator = false) ⇒ Boolean
- #editable_by?(user, is_moderator = false) ⇒ Boolean
- #is_deleted ⇒ Object (also: #is_deleted?)
- #is_edited ⇒ Object (also: #is_edited?)
- #mark_as_deleted_by(user) ⇒ Object
- #on_page ⇒ Object
- #output ⇒ Object
- #output_without_tags ⇒ Object
- #topic_must_not_be_closed ⇒ Object
Class Method Details
.per_page ⇒ Object
45 46 47 |
# File 'app/models/simple_forum/post.rb', line 45 def self.per_page 15 end |
Instance Method Details
#deletable_by?(user, is_moderator = false) ⇒ Boolean
65 66 67 68 69 70 71 |
# File 'app/models/simple_forum/post.rb', line 65 def deletable_by?(user, is_moderator=false) return false if new_record? return false if is_deleted? is_moderator = forum.is_moderator?(user) if is_moderator.nil? return true if is_moderator created_at > SimpleForum.minutes_for_delete_post.minutes.ago && user == self.user end |
#editable_by?(user, is_moderator = false) ⇒ Boolean
57 58 59 60 61 62 63 |
# File 'app/models/simple_forum/post.rb', line 57 def editable_by?(user, is_moderator=false) return false if new_record? return false if is_deleted? is_moderator = forum.is_moderator?(user) if is_moderator.nil? return true if is_moderator created_at > SimpleForum.minutes_for_edit_post.minutes.ago && user == self.user end |
#is_deleted ⇒ Object Also known as: is_deleted?
73 74 75 |
# File 'app/models/simple_forum/post.rb', line 73 def is_deleted !!deleted_at end |
#is_edited ⇒ Object Also known as: is_edited?
79 80 81 |
# File 'app/models/simple_forum/post.rb', line 79 def is_edited !!edited_at end |
#mark_as_deleted_by(user) ⇒ Object
85 86 87 88 89 90 |
# File 'app/models/simple_forum/post.rb', line 85 def mark_as_deleted_by(user) return false unless deletable_by?(user, nil) self.deleted_at = Time.now self.deleted_by = user self.save end |
#on_page ⇒ Object
40 41 42 43 |
# File 'app/models/simple_forum/post.rb', line 40 def on_page before_count = topic.posts.where(["#{SimpleForum::Post.quoted_table_name}.created_at<?", created_at]).size [((before_count + 1).to_f / SimpleForum::Post.per_page).ceil.to_i, 1].max end |
#output ⇒ Object
49 50 51 |
# File 'app/models/simple_forum/post.rb', line 49 def output body.to_s.bbcode_to_html end |
#output_without_tags ⇒ Object
53 54 55 |
# File 'app/models/simple_forum/post.rb', line 53 def HTML::FullSanitizer.new.sanitize(output.gsub(/\<fieldset\>\<legend\>.*\<\/legend\>\<blockquote\>(.|\n)*\<\/blockquote\>/, '')) end |
#topic_must_not_be_closed ⇒ Object
36 37 38 |
# File 'app/models/simple_forum/post.rb', line 36 def topic_must_not_be_closed errors.add(:base, I18n.t('simple_forum.errors.topic_is_close', :default => "Topic is closed.")) if topic && topic.is_closed? end |