Sha256: d831bdc488108cc3abd7325547ab869b9f6c5a77839594ab98b3a7b18a27dc52
Contents?: true
Size: 1.73 KB
Versions: 3
Compression:
Stored size: 1.73 KB
Contents
class Comfy::Cms::ContentController < Comfy::Cms::BaseController # Respond with HTML by default so that requests with 'Accept: */*' get a web page (e.g. Facebook) respond_to :html, :json # 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 else respond_with(@cms_page) do |format| format.html { render_html } end end end def render_sitemap render end protected def render_html(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 => 'text/html' else render :text => I18n.t('comfy.cms.content.layout_not_found'), :status => 404 end 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_with @cms_page do |format| format.html { render_html(404) } end rescue ActiveRecord::RecordNotFound raise ActionController::RoutingError.new("Page Not Found at: \"#{params[:cms_path]}\"") end end
Version data entries
3 entries across 3 versions & 1 rubygems