Sha256: ad1d8dbb7d5a5635559ed5e64a829539a0878c23cf09f562847778c9a11bb797
Contents?: true
Size: 1.92 KB
Versions: 23
Compression:
Stored size: 1.92 KB
Contents
module Enjoy::SeoPages extend ActiveSupport::Concern included do before_filter :find_page end private def find_page return if rails_admin? @seo_page = find_seo_page request.path if !@seo_page.nil? && !@seo_page.redirect.blank? redirect_to @seo_page.redirect, status: :moved_permanently end end def find_seo_page(path) do_redirect = false if path[0] != '/' path = '/' + path end if path.length > 1 && path[-1] == '/' path = path[0..-2] do_redirect = true end page = page_class.enabled.where(fullpath: path).first if page.nil? && !params[:slug].blank? page = page_class.enabled.where(fullpath: "/" + params[:slug]).first end if page.nil? page = find_seo_extra(path) end if page.nil? do_redirect = true spath = path.chomp(File.extname(path)) if spath != path page = Enjoy::Page.enabled.where(fullpath: spath).first end end if !page.nil? && do_redirect redirect_to path, status: :moved_permanently end page end def find_seo_page_with_redirect(path) do_redirect = false if path[0] != '/' path = '/' + path end if path.length > 1 && path[-1] == '/' path = path[0..-2] do_redirect = true end page = page_class.enabled.any_of({fullpath: path}, {redirect: path}).first if page.nil? do_redirect = true spath = path.chomp(File.extname(path)) if spath != path page = page_class.enabled.any_of({fullpath: spath}, {redirect: spath}).first end end if !page.nil? && do_redirect redirect_to path, status: :moved_permanently end page end def find_seo_extra(path) nil end def page_class_name "Enjoy::Page" end def page_class page_class_name.constantize end def rails_admin? self.is_a?(RailsAdmin::ApplicationController) || self.is_a?(RailsAdmin::MainController) end end
Version data entries
23 entries across 23 versions & 1 rubygems