Sha256: 74e7d824419e411e3569fa836fc168b864ea564de6403addba93aa93950fe417

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

module Templates::PageExtensions

  def self.included(base)
    base.class_eval do
      before_save :match_with_template
      def allowed_children
        [default_child, Template.all].flatten
      end
    end
  end

  def match_with_template
    unless self.template.blank?
      self.class_name = self.template.page_class_name
      self.layout_id = self.template.layout_id
    end
  end

  def template_name
    template ? template.name : "Blank Page"
  end

  def is_a_blank_page?
    ! template_id?
  end

  # Meta-programming methods to determine if page is built on a specific template
  # e.g. @page.is_a_press_release? assuming you have "Press Release" template defined.
  begin
    Template.all.each do |unique_template|
      class_eval <<-CODE, __FILE__, __LINE__
        def is_a_#{unique_template.name.titleize.scan(/\w+/).join.underscore}?
          template_id? && template.name == "#{unique_template.name}"
        end
      CODE
    end
  rescue
    # This won't run before initial migrations, which create the Template table
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
radiant-templates-extension-1.0.4 lib/templates/page_extensions.rb
radiant-templates-extension-1.0.3 lib/templates/page_extensions.rb
radiant-templates-extension-1.0.2 lib/templates/page_extensions.rb