Sha256: fecc857ed78a56626ad0f8ab38c360eb84e1ff462749df113be20446348c39d1

Contents?: true

Size: 1.44 KB

Versions: 5

Compression:

Stored size: 1.44 KB

Contents

class Skyline::Site::PagesController < ApplicationController
  before_filter :find_site, :find_page_version_and_url_parts, :possibly_redirect
  
  def show
    renderer = @site.renderer(:controller => self)
    
    if @page_version    
      
      # ========
      # = Page =
      # ========
      if renderer.assigns[:body].blank? && @url_parts.empty?
        renderer.assigns.update(:body => self.response.body)
      end      
      
      render :text => renderer.render(@page_version) if renderer.assigns[:body].present?
    end    

    # ================================================
    # = Fallback; render 404 if nothing was rendered =
    # ================================================
    self.handle_404 unless performed?
  end
  
  
  protected

  def handle_404
    render :text => "Error 404 :: Page with url \"#{params[:url].join("/")}\" doesn't exist.", :status => :not_found    
  end
  
  def find_site
    @site = Skyline::Site.new
  end
  
  def find_page_version_and_url_parts
    page, @url_parts = @site.pages.find_by_url(params[:url])
    @page_version = page.andand.published_publication
  end
  
  def possibly_redirect
    return if !@page_version || @url_parts.any?
    if redirect_section = @page_version.sections.detect{|section| section.sectionable.kind_of?(Skyline::Sections::RedirectSection)}
      if redirect_section.sectionable.delay == 0
        redirect_to redirect_section.sectionable.url(request)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
skylinecms-3.1.0 app/controllers/skyline/site/pages_controller.rb
westarete-skylinecms-3.0.8.20100329 app/controllers/skyline/site/pages_controller.rb
westarete-skylinecms-3.0.8.20100330 app/controllers/skyline/site/pages_controller.rb
skylinecms-3.0.8 app/controllers/skyline/site/pages_controller.rb
skylinecms-3.0.7 app/controllers/skyline/site/pages_controller.rb