Sha256: 2e493b06bed29eb7a2bb798526d371812be994d6731bf1d5ea46543854b3340a

Contents?: true

Size: 1.79 KB

Versions: 20

Compression:

Stored size: 1.79 KB

Contents

module Enjoy
  module Models
    module Page
      extend ActiveSupport::Concern
      include Enjoy::Model
      include ManualSlug
      include Enjoy::Enableable
      include Enjoy::Seoable
      include Enjoy::SitemapDataField

      include Enjoy.orm_specific('Page')

      # if Enjoy.config.search_enabled
      #   include Enjoy::ElasticSearch
      # end

      included do
        validates_uniqueness_of :fullpath
        validates_presence_of :name
        manual_slug :name
        before_validation do
          self.fullpath = "/pages/#{slug}" if self.fullpath.blank?
        end
      end

      def page_h1
        _ret = seo ? seo.h1 : nil
        _ret = name   if _ret.blank?
        _ret = title  if _ret.blank?
        _ret
      end

      def get_fullpath
        redirect.blank? ? fullpath : redirect
      end

      def has_content?
        @content_used.nil? && !content.blank?
      end

      def page_content
        if @content_used.nil?
          @content_used = true
          if content.nil?
            ''
          else
            content.gsub(/\{\{(.*?)\}\}/) do
              Settings ? Settings.get($1).val : "" #temp
            end
          end
        else
          ''
        end
      end

      def is_current?(url)
        if fullpath == '/'
          url == '/'
        else
          url.match(clean_regexp)
        end
      end

      def regexp_prefix
        ""
      end

      def clean_regexp
        if regexp.blank?
          /^#{regexp_prefix}#{Regexp.escape(fullpath)}$/
        else
          begin
            /#{regexp}/
          rescue
            # not a valid regexp - treat as literal search string
            /#{Regexp.escape(regexp)}/
          end
        end
      end

      def nav_options
        {highlights_on: clean_regexp}
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
enjoy_cms-0.3.6.2 lib/enjoy/models/page.rb
enjoy_cms-0.3.6.1 lib/enjoy/models/page.rb
enjoy_cms-0.3.6 lib/enjoy/models/page.rb
enjoy_cms-0.3.5 lib/enjoy/models/page.rb
enjoy_cms-0.3.4 lib/enjoy/models/page.rb
enjoy_cms-0.3.3 lib/enjoy/models/page.rb
enjoy_cms-0.3.2.1 lib/enjoy/models/page.rb
enjoy_cms-0.3.2 lib/enjoy/models/page.rb
enjoy_cms-0.3.1.2 lib/enjoy/models/page.rb
enjoy_cms-0.3.1.1 lib/enjoy/models/page.rb
enjoy_cms-0.3.1 lib/enjoy/models/page.rb
enjoy_cms-0.3.0.4 lib/enjoy/models/page.rb
enjoy_cms-0.3.0.3 lib/enjoy/models/page.rb
enjoy_cms-0.3.0.2 lib/enjoy/models/page.rb
enjoy_cms-0.2.0.3.2 lib/enjoy/models/page.rb
enjoy_cms-0.2.0.3.1 lib/enjoy/models/page.rb
enjoy_cms-0.2.0.3 lib/enjoy/models/page.rb
enjoy_cms-0.2.0.2 lib/enjoy/models/page.rb
enjoy_cms-0.2.0.1.beta lib/enjoy/models/page.rb
enjoy_cms-0.2.0.beta lib/enjoy/models/page.rb