Sha256: d1ff36d5e56daac2d1d94f425e783938555698de9b42627d1632a887aa8c467d
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
# frozen_string_literal: true module PagesCore module PagePathHelper def page_path(locale, page, options = {}) page.localize(locale) do |p| return super(locale, p, options) unless p.full_path? (PagesCore.config.localizations? ? "/#{locale}/" : "/") + escape_page_path(p.full_path) + (html_format?(options) ? "" : ".#{options[:format]}") + paginated_section(options) end end def page_url(locale, page, opts = {}) page.localize(locale) do |p| if p.redirects? && html_format?(opts) page_redirect_url(locale, p) elsif p.full_path base_page_url + page_path(locale, p, opts) else super(locale, p, opts) end end end private def page_redirect_url(locale, page) redirect = page.redirect_path(locale:) return redirect if %r{^https?://}.match?(redirect) base_page_url + redirect end def base_page_url "#{request.protocol}#{request.host_with_port}" end def html_format?(opts) opts[:format].blank? || opts[:format].to_sym == :html end def escape_page_path(path) path.split("/").map { |s| CGI.escape(s) }.join("/") end def paginated_section(opts) return "" unless opts[:page] "/page/#{opts[:page]}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pages_core-3.15.5 | app/helpers/pages_core/page_path_helper.rb |