Sha256: 35c33d85309c177a5c80181d566eaf7421f7a039c6d8eeeba9f8e496ed435443

Contents?: true

Size: 1.52 KB

Versions: 6

Compression:

Stored size: 1.52 KB

Contents

module Ecm::Cms
  class Page < ActiveRecord::Base
    self.table_name = 'ecm_cms_pages'

    # add shared behaviour for database backed templates
    include DatabaseTemplate

    # associations
    has_many :ecm_cms_navigation_items,
             :class_name => 'NavigationItem',
             :dependent => :nullify,
             :foreign_key => 'ecm_cms_page_id'
    has_many :ecm_cms_page_content_blocks,
             :class_name => 'Ecm::Cms::Page::ContentBlock',
             :dependent => :destroy,
             :foreign_key => 'ecm_cms_page_id',
             :inverse_of => :ecm_cms_page          

    # attributes
    attr_accessible :basename,
                    :body,
                    :ecm_cms_folder_id,
                    :ecm_cms_navigation_item_ids,
                    :ecm_cms_page_content_blocks_attributes,
                    :format,
                    :handler,
                    :layout,
                    :locale,
                    :meta_description,
                    :pathname,
                    :title
    accepts_nested_attributes_for :ecm_cms_page_content_blocks, :allow_destroy => true

    # callbacks
    after_save :touch_navigation_items # , :if => Proc.new { |page| page.locale_changed? || page.pathname_changed? || page.basename_changed? }

    # validations
    validates :title, :presence => true

    def home_page? 
      return self.pathname == '/' && self.basename == 'home'
    end

    def touch_navigation_items
      self.ecm_cms_navigation_items.map(&:update_url_form_page!)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ecm_cms-1.0.5.pre app/models/ecm/cms/page.rb
ecm_cms-1.0.4.pre app/models/ecm/cms/page.rb
ecm_cms-1.0.3.pre app/models/ecm/cms/page.rb
ecm_cms-1.0.2.pre app/models/ecm/cms/page.rb
ecm_cms-1.0.1.pre app/models/ecm/cms/page.rb
ecm_cms-1.0.0.pre app/models/ecm/cms/page.rb