Sha256: 12b735e89361fc3405cddf902ec93d9dc4ea96ad42869af9ae63aecfcf33b394

Contents?: true

Size: 1.47 KB

Versions: 3

Compression:

Stored size: 1.47 KB

Contents

class CmsContentController < ApplicationController
  
  before_filter :load_cms_site
  before_filter :load_cms_page,   :only => :render_html
  before_filter :load_cms_layout, :only => [:render_css, :render_js]
  
  caches_page :render_css, :render_js, :if => LucyCms.config.enable_caching
  
  def render_html(status = 200)
    layout = @cms_page.cms_layout.app_layout.blank?? false : @cms_page.cms_layout.app_layout
    render :inline => @cms_page.content, :layout => layout, :status => status
  end
  
  def render_css
    render :text => @cms_layout.css, :content_type => 'text/css'
  end
  
  def render_js
    render :text => @cms_layout.js, :content_type => 'text/javascript'
  end
  
protected
  
  def load_cms_site
    @cms_site = CmsSite.first
    if @cms_site.nil?
      redirect_to new_cms_admin_site_path
      flash[:error] = 'To start you must setup your site'
      return
    end
  end
  
  def load_cms_page
    @cms_page = CmsPage.published.load_for_full_path!(@cms_site, "/#{params[:cms_path]}")
    return redirect_to(@cms_page.target_page.full_path) if @cms_page.target_page
    
  rescue ActiveRecord::RecordNotFound
    if @cms_page = CmsPage.published.load_for_full_path(@cms_site, '/404')
      render_html(404)
    else
      render :text => 'Page Not Found', :status => 404
    end
  end
  
  def load_cms_layout
    @cms_layout = CmsLayout.load_for_slug!(@cms_site, params[:id])
  rescue ActiveRecord::RecordNotFound
    render :nothing => true, :status => 404
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lucy_cms-0.0.6 app/controllers/cms_content_controller.rb
lucy_cms-0.0.5 app/controllers/cms_content_controller.rb
lucy_cms-0.0.4 app/controllers/cms_content_controller.rb