Sha256: 1b1b71a18fd4a8c2663f24d5d6bdefbe50a213b78f0367650451dee078598e67

Contents?: true

Size: 1.66 KB

Versions: 18

Compression:

Stored size: 1.66 KB

Contents

class CamaleonCms::PostComment < ActiveRecord::Base
  include CamaleonCms::Metas
  self.table_name = "#{PluginRoutes.static_system_info["db_prefix"]}comments"
  # attr_accessible :user_id, :post_id, :content, :author, :author_email, :author_url, :author_IP, :approved, :agent, :agent, :typee, :comment_parent, :is_anonymous
  attr_accessor :is_anonymous

  #default_scope order('comments.created_at ASC')
  #approved: approved | pending | spam

  cama_define_common_relationships('PostComment')
  has_many :children, class_name: "CamaleonCms::PostComment", foreign_key: :comment_parent, dependent: :destroy
  belongs_to :post, class_name: "CamaleonCms::Post", foreign_key: :post_id
  belongs_to :parent, class_name: "CamaleonCms::PostComment", foreign_key: :comment_parent
  belongs_to :user, class_name: PluginRoutes.static_system_info['user_model'].presence || 'CamaleonCms::User', foreign_key: :user_id

  default_scope {order("#{CamaleonCms::PostComment.table_name}.created_at DESC")}

  scope :main, -> { where(:comment_parent => nil) }
  scope :comment_parent, -> { where(:comment_parent => 'is not null') }
  scope :approveds, -> { where(:approved => 'approved') }

  validates :content, :presence => true
  validates_presence_of :author, :author_email, if: Proc.new { |c| c.is_anonymous.present? }
  after_create :update_counter
  after_destroy :update_counter

  # return the owner of this comment
  def comment_user
    self.user
  end

  # check if this comments is already approved
  def is_approved?
    self.approved == 'approved'
  end

  private
  # update comment counter
  def update_counter
    p = self.post
    p.set_meta("comments_count", p.comments.count) if p.present?
  end

end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
camaleon_cms-2.4.5.7 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.5.5 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.5.4 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.5.3 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.5.2 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.5.1 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.5 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.4.7 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.4.6 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.4.5 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.4.4 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.4.3 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.4.2 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.4.1 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.4 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.3.13 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.3.12 app/models/camaleon_cms/post_comment.rb
camaleon_cms-2.4.3.11 app/models/camaleon_cms/post_comment.rb