Sha256: aa61eac2b0683b440e44adbc393563d3745d03194c63729ebb65f7d4d4f2d0af

Contents?: true

Size: 1.27 KB

Versions: 6

Compression:

Stored size: 1.27 KB

Contents

class Ecm::Cms::PageController < Ecm::Cms::Configuration.base_controller.constantize
  # add the page resolver
  include Ecm::Cms::ControllerExtensions::PageResolver
  include Ecm::Cms::ControllerExtensions::PartialResolver

  # avoid error 500 on missing template
  rescue_from ActionView::MissingTemplate do
    if params[:page] == 'home'
      render_fallback_page
    else
      respond_to do |format|
        format.html do
          render(file: "#{Rails.root}/public/404", formats: [:html],
                 layout: false,
                 status: 404
                )
        end
        format.xml  { head :not_found }
        format.any  { head :not_found }
      end
    end
  end

  def respond
    respond_to do |format|
      format.html { render template: params[:page] }
      format.txt  { render template: params[:page], layout: false, formats: [:text] }
      format.pdf do
        output = render_to_string template: params[:page], formats: [:html, :pdf], layout: false
        self.response_body = WickedPdf.new.pdf_from_string(output)
      end if Gem::Specification.find_all_by_name('wicked_pdf').any?
    end
  end

  private

  def render_fallback_page
    respond_to do |format|
      format.html { render :fallback }
      format.txt  { render :fallback }
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ecm_cms2-5.1.2 app/controllers/ecm/cms/page_controller.rb
ecm_cms2-5.1.1 app/controllers/ecm/cms/page_controller.rb
ecm_cms2-5.1.0 app/controllers/ecm/cms/page_controller.rb
ecm_cms2-5.0.0 app/controllers/ecm/cms/page_controller.rb
ecm_cms2-4.1.1 app/controllers/ecm/cms/page_controller.rb
ecm_cms2-4.1.0 app/controllers/ecm/cms/page_controller.rb