Sha256: 884e70a33e4ec22a5345b072d90633aa649f1de76ba17beb45458b9cc7884151

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

# Abstract controller for all frontend controllers.
module PagesCore
  class FrontendController < ::ApplicationController
    include PagesCore::DocumentTitleController
    include ApplicationHelper

    before_action :set_i18n_locale
    helper_method :page_param

    # Loads @root_pages and @rss_feeds. To automatically load these in your
    # own controllers, add the following line to your controller definition:
    #
    #   before_action :load_root_pages
    #
    def load_root_pages
      @root_pages = Page.roots.localized(content_locale).published
      @rss_feeds = Page.where(feed_enabled: true)
                       .localized(content_locale)
                       .published
    end

    private

    def page_param
      if params[:page].is_a?(String)
        [Integer(params[:page], exception: false), 1].compact.max
      else
        1
      end
    end

    def set_i18n_locale
      I18n.locale = content_locale
    rescue I18n::InvalidLocale
      raise if Rails.application.config.consider_all_requests_local

      render_error 404
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pages_core-3.15.5 app/controllers/pages_core/frontend_controller.rb