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