module Hancock::Pages::Models::Page

Public Instance Methods

clean_regexp() click to toggle source
# File lib/hancock/pages/models/page.rb, line 188
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
get_fullpath() click to toggle source
# File lib/hancock/pages/models/page.rb, line 163
def get_fullpath
  redirect.blank? ? fullpath : redirect
end
goto_hancock() click to toggle source
# File lib/hancock/pages/models/page.rb, line 235
def goto_hancock
  self.where(hancock_connectable_type: /^Enjoy/).all.map { |s|
    s.hancock_connectable_type = s.hancock_connectable_type.sub("Enjoy", "Hancock");
    s.save
  }
end
has_content?() click to toggle source
# File lib/hancock/pages/models/page.rb, line 172
def has_content?
  @content_used.nil? && !content.blank?
end
has_excerpt?() click to toggle source
# File lib/hancock/pages/models/page.rb, line 167
def has_excerpt?
  @excerpt_used.nil? && !excerpt.blank?
end
is_current?(url) click to toggle source
# File lib/hancock/pages/models/page.rb, line 176
def is_current?(url)
  if fullpath == '/'
    url == '/'
  else
    url.match(clean_regexp)
  end
end
manager_can_add_actions() click to toggle source
# File lib/hancock/pages/models/page.rb, line 242
def manager_can_add_actions
  ret = [:nested_set]
  # ret += [:multiple_file_upload, :sort_embedded] if Hancock::Pages.mongoid?
  ret << :model_settings if Hancock::Pages.config.model_settings_support
  # ret << :model_accesses if Hancock::Pages.config.user_abilities_support
  ret << :hancock_touch if Hancock::Pages.config.cache_support
  ret += [:comments, :model_comments] if Hancock::Pages.config.ra_comments_support
  ret.freeze
end
nav_options() click to toggle source
nav_options_additions() click to toggle source
nav_options_default() click to toggle source
page_content(view = Hancock::Pages::PagesController.new) click to toggle source
# File lib/hancock/pages/models/page.rb, line 104
def page_content(view = Hancock::Pages::PagesController.new)
  if @content_used.nil?
    if content.nil?
      @content_used = true
      ''
    else
      view.extend ActionView::Helpers::TagHelper
      view.extend ActionView::Context

      # {{BS|%blockset_name%}}
      # content.gsub(/\{\{(.*?)\}\}/) do
      _content = content.gsub(/\{\{BS\|(.*?)\}\}/) do
        bs = Hancock::Pages::Blockset.enabled.where(name: $1).first
        if bs
          begin
            view.render_blockset(bs, called_from: {object: self, method: :page_content})
          rescue Exception => exception
            if Hancock::Pages.config.verbose_render
              Rails.logger.error exception.message
              Rails.logger.error exception.backtrace.join("\n")
              puts exception.message
              puts exception.backtrace.join("\n")
            end
            Raven.capture_exception(exception) if Hancock::Pages.config.raven_support
          end
        end

      # {{self.%insertion%}}
      end.gsub(/(\{\{self\.(.*?)\}\})/) do
        if Hancock::Pages.config.insertions_support
          get_insertion($2)
        else
          $1
        end

      # {{"some_text"}} #temporary disabled - need tests
      # end.gsub(/\{\{(['"])(.*?)(\1)\}\}/) do
      # end.gsub(/\{\{(\'|\"|&quot;|&#39;)(.*?)(\1)\}\}/) do
      #   $2

      # {{%ns%.%key%}}
      end.gsub(/\{\{(([^\.]*?)\.)?(.*?)\}\}/) do
        ((Settings and !$3.nil? and $2 != "self") ? Settings.ns($2).get($3).val : "") rescue "" #temp
      end
    end
    @content_used = true
    _content
  else
    ''
  end
end
page_excerpt(view = Hancock::Pages::PagesController.new) click to toggle source
# File lib/hancock/pages/models/page.rb, line 53
def page_excerpt(view = Hancock::Pages::PagesController.new)
  if @excerpt_used.nil?
    if excerpt.nil?
      @excerpt_used = true
      ''
    else
      view.extend ActionView::Helpers::TagHelper
      view.extend ActionView::Context
      # {{BS|%blockset_name%}}
      # excerpt.gsub(/\{\{(.*?)\}\}/) do
      _excerpt = excerpt.gsub(/\{\{BS\|(.*?)\}\}/) do
        bs = Hancock::Pages::Blockset.enabled.where(name: $1).first
        if bs
          begin
            view.render_blockset(bs, called_from: {object: self, method: :page_excerpt})
          rescue Exception => exception
            if Hancock::Pages.config.verbose_render
              Rails.logger.error exception.message
              Rails.logger.error exception.backtrace.join("\n")
              puts exception.message
              puts exception.backtrace.join("\n")
            end
            Raven.capture_exception(exception) if Hancock::Pages.config.raven_support
          end
        end

      # {{self.%insertion%}}
      end.gsub(/(\{\{self\.(.*?)\}\})/) do
        if Hancock::Pages.config.insertions_support
          get_insertion($2)
        else
          $1
        end

      # {{"some_text"}} #temporary disabled - need tests
      # {{"some_text"}}
      # end.gsub(/\{\{(\'|\"|&quot;|&#39;)(.*?)(\1)\}\}/) do
      #   $2

      # {{%ns%.%key%}}
      end.gsub(/\{\{(([^\.]*?)\.)?(.*?)\}\}/) do
        (Settings and !$3.nil? and $2 != "self") ? Settings.ns($2).get($3).val : "" #temp
      end
      @excerpt_used = true
      _excerpt
    end
  else
    ''
  end
end
page_h1() click to toggle source
# File lib/hancock/pages/models/page.rb, line 156
def page_h1
  _ret = seo ? seo.h1 : nil
  _ret = name   if _ret.blank?
  _ret = title  if _ret.blank?
  _ret
end
rails_admin_add_visible_actions() click to toggle source
# File lib/hancock/pages/models/page.rb, line 251
def rails_admin_add_visible_actions
  ret = [:nested_set]
  # ret += [:multiple_file_upload, :sort_embedded] if Hancock::Pages.mongoid?
  ret << :model_settings if Hancock::Pages.config.model_settings_support
  ret << :model_accesses if Hancock::Pages.config.user_abilities_support
  ret << :hancock_touch if Hancock::Pages.config.cache_support
  ret += [:comments, :model_comments] if Hancock::Pages.config.ra_comments_support
  ret.freeze
end
regexp_prefix() click to toggle source
# File lib/hancock/pages/models/page.rb, line 184
def regexp_prefix
  Hancock::Pages.config.localize ? "(?:#{I18n.available_locales.map { |l| "\\/#{l}"}.join("|")})?" : ""
end
wrapper_attributes=(val) click to toggle source
# File lib/hancock/pages/models/page.rb, line 213
def wrapper_attributes=(val)
  if val.is_a? (String)
    begin
      begin
        self[:wrapper_attributes] = JSON.parse(val)
      rescue
        self[:wrapper_attributes] = YAML.load(val)
      end
    rescue
    end
  elsif val.is_a?(Hash)
    self[:wrapper_attributes] = val
  else
    self[:wrapper_attributes] = wrapper_attributes
  end
end