Sha256: fb61556913569079b4a893f26b40cf8c0b5e259e2a27b9d13cc8d4ab9889433d
Contents?: true
Size: 1.91 KB
Versions: 5
Compression:
Stored size: 1.91 KB
Contents
class Comfy::Cms::ContentController < Comfy::Cms::BaseController # Authentication module must have `authenticate` method include ComfortableMexicanSofa.config.public_auth.to_s.constantize before_action :load_fixtures before_action :load_cms_page, :authenticate, :only => :show rescue_from ActiveRecord::RecordNotFound, :with => :page_not_found def show if @cms_page.target_page.present? redirect_to @cms_page.target_page.url(:relative) else respond_to do |format| format.html { render_page } format.json { render :json => @cms_page } end end end def render_sitemap render end protected def render_page(status = 200) if @cms_layout = @cms_page.layout app_layout = (@cms_layout.app_layout.blank? || request.xhr?) ? false : @cms_layout.app_layout render :inline => @cms_page.content_cache, :layout => app_layout, :status => status, :content_type => mime_type else render :text => I18n.t('comfy.cms.content.layout_not_found'), :status => 404 end end # it's possible to control mimetype of a page by creating a `mime_type` field def mime_type mime_block = @cms_page.blocks.find_by_identifier(:mime_type) mime_block && mime_block.content || 'text/html' end def load_fixtures return unless ComfortableMexicanSofa.config.enable_fixtures ComfortableMexicanSofa::Fixture::Importer.new(@cms_site.identifier).import! end def load_cms_page @cms_page = @cms_site.pages.published.find_by_full_path!("/#{params[:cms_path]}") end def page_not_found @cms_page = @cms_site.pages.published.find_by_full_path!('/404') respond_to do |format| format.html { render_page(404) } end rescue ActiveRecord::RecordNotFound raise ActionController::RoutingError.new("Page Not Found at: \"#{params[:cms_path]}\"") end end
Version data entries
5 entries across 5 versions & 1 rubygems