Sha256: ec36206191ee1a416f33b3f3f320385dec1732a2a3e2820f71a9abb61e845957

Contents?: true

Size: 1.28 KB

Versions: 7

Compression:

Stored size: 1.28 KB

Contents

class Page < ActiveRecord::Base
  
  has_paper_trail
  acts_as_indexed :fields => [:title, :body, :area_1, :area_2, :meta_keywords, :meta_description, :nav_label]  
  has_friendly_id :title, :use_slug => true
  
  acts_as_tree :order => "position"
  
  has_many :menu_items, :as => :menuable, :dependent => :destroy
  has_many :galleries, :as => :galleriable
  
  default_scope order("parent_id, position")
  scope :published, where("publish = ? OR (release_at > ? AND expire_at < ?) ", true, Time.zone.now, Time.zone.now)
  before_save :set_nav_label
  
  include Soapbox::Page if File.exists? "app/models/soapbox/page.rb"
  
  def self.homepage
    self.where("homepage=?",true).first
  end
  
  def title_bread_crumb
    title = self.title
    page = self
    i = 0
    until page.parent.nil? || page.parent_id == page.id  || i > 10
      i += 1
      page = page.parent
      title += " &raquo; #{page.title}".html_safe
    end
    title.html_safe
  end
  
  def parents
    parents = [self]
    page = self
    i = 0
    until page.nil? || page.parent_id == page.id  || i > 10
      i += 1
      page = page.parent
      parents << page unless page.nil?
    end
    parents.reverse!
  end
  
private
  def set_nav_label
    self.nav_label = self.title if self.nav_label.nil? || self.nav_label.empty?
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
soapbox-0.2.9 app/models/page.rb
soapbox-0.2.8 app/models/page.rb
soapbox-0.2.7 app/models/page.rb
soapbox-0.2.6 app/models/page.rb
soapbox-0.2.5 app/models/page.rb
soapbox-0.2.4 app/models/page.rb
soapbox-0.2.3 app/models/page.rb