module RocketCMS

Constants

VERSION

Public Class Methods

active_record?() click to toggle source
# File lib/rocket_cms.rb, line 34
def active_record?
  RocketCMS.orm == :active_record
end
app_url(object) click to toggle source
# File lib/rocket_cms.rb, line 59
def app_url(object)
  if object.class.name == 'Page'
    if object.fullpath.blank?
      url_helper.page_path(object)
    else
      object.fullpath
    end
  else
    RocketCMS.custom_app_url(object)
  end
end
apply_patches(s) click to toggle source
# File lib/rocket_cms/patch.rb, line 41
def self.apply_patches(s)
  if s.class.name.index('RailsAdmin::Config::Sections::').nil?
    if s.class.name == 'RailsAdmin::Config::Model'
      s.instance_eval(&@@patches[s.abstract_model.model_name][:admin]) unless @@patches[s.abstract_model.model_name].nil?
    else
      s.instance_eval(&@@patches[s.name][:model]) unless @@patches[s.name].nil?
    end
  else
    model = s.abstract_model.model_name
    action = s.class.name.split('::')[-1].downcase.to_sym
    s.instance_eval(&@@patches[model][action]) unless @@patches[model].nil?
  end
end
config() click to toggle source
# File lib/rocket_cms/configuration.rb, line 5
def self.config
  @configuration ||= Configuration.new
end
configuration() click to toggle source
# File lib/rocket_cms/configuration.rb, line 2
def self.configuration
  @configuration ||= Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/rocket_cms/configuration.rb, line 9
def self.configure
  yield configuration
end
contact_message_config() click to toggle source
# File lib/rocket_cms/admin.rb, line 113
def contact_message_config
  Proc.new {
    navigation_label I18n.t('rs.settings')
    field :created_at do
      read_only true
    end
    field :name
    field :content
    field :email
    field :phone

    RocketCMS.apply_patches self
    RocketCMS.only_patches self, [:show, :list, :edit, :export]
  }
end
custom_app_url(object) click to toggle source
# File lib/rocket_cms.rb, line 55
def custom_app_url(object)
  url_helper.polymorphic_url(object, routing_type: :path)
end
full?() click to toggle source
# File lib/rocket_cms.rb, line 31
def full?
  !RocketCMS.light?
end
map_config(is_active = true) click to toggle source
# File lib/rocket_cms/admin.rb, line 3
def map_config(is_active = true)
  Proc.new {
    active is_active
    label I18n.t('rs.map')
    field :address, :string
    field :map_address, :string
    field :map_hint, :string
    field :coordinates, :string do
      read_only true
      formatted_value{ bindings[:object].coordinates.to_json }
    end
    field :lat
    field :lon
  }
end
menu_config() click to toggle source
model_namespace() click to toggle source
# File lib/rocket_cms.rb, line 37
def model_namespace
  "RocketCMS::Models::#{RocketCMS.orm.to_s.camelize}"
end
mongoid?() click to toggle source
# File lib/rocket_cms.rb, line 28
def mongoid?
  RocketCMS.orm == :mongoid
end
news_config() click to toggle source
# File lib/rocket_cms/admin.rb, line 129
def news_config
  Proc.new {
    navigation_label I18n.t('rs.cms')

    field :enabled, :toggle
    field :time do
      sort_reverse true
    end
    field :name
    unless RocketCMS.config.news_image_styles.nil?
      field :image
    end
    field :excerpt
    RocketCMS.apply_patches self

    list do
      RocketCMS.apply_patches self
      sort_by :time
    end

    edit do
      field :content, :ckeditor
      RocketCMS.apply_patches self
      group :seo, &RocketCMS.seo_config
    end

    RocketCMS.only_patches self, [:show, :list, :export]
  }
end
only_patches(s, sections) click to toggle source
# File lib/rocket_cms/patch.rb, line 31
def self.only_patches(s, sections)
  s.instance_eval do
    sections.each do |section|
      send section do
        RocketCMS.apply_patches self
      end
    end
  end
end
orm_specific(name) click to toggle source
# File lib/rocket_cms.rb, line 40
def orm_specific(name)
  "#{model_namespace}::#{name}".constantize
end
page_config() click to toggle source
# File lib/rocket_cms/admin.rb, line 48
def page_config
  Proc.new {
    RocketCMS.apply_patches self
    navigation_label I18n.t('rs.cms')
    list do
      field :enabled,  :toggle
      field :menus, :menu
      field :name
      field :fullpath do
        pretty_value do
          bindings[:view].content_tag(:a, bindings[:object].fullpath, href: bindings[:object].fullpath)
        end
      end
      field :redirect
      field :slug
      RocketCMS.apply_patches self
    end
    edit do
      field :name
      field :content, :ckeditor
      RocketCMS.apply_patches self
      group :menu do
        label I18n.t('rs.menu')
        field :menus
        field :fullpath, :string do
          help I18n.t('rs.with_final_slash')
        end
        field :regexp, :string do
          help I18n.t('rs.page_url_regex')
        end
        field :redirect, :string do
          help I18n.t('rs.final_in_menu')
        end
        field :text_slug do
          read_only true
        end
      end
      if Seo.separate_table?
        group :seo do
          active RocketCMS.config.seo_active_by_default
          field :seo do
            active RocketCMS.config.seo_active_by_default
          end
        end
      else
        group :seo, &RocketCMS.seo_config(RocketCMS.config.seo_active_by_default)
      end
    end
    RocketCMS.only_patches self, [:show, :export]
    nested_set({
      max_depth: RocketCMS.config.menu_max_depth
    })
  }
end
paperclip?() click to toggle source
# File lib/rocket_cms.rb, line 47
def paperclip?
  !shrine? && defined?(::Paperclip)
end
patch(model, &blk) click to toggle source
# File lib/rocket_cms/patch.rb, line 55
def self.patch(model, &blk)
   @@patches[model] = PatchDSL.call(&blk)
end
seo_config(is_active = true) click to toggle source
# File lib/rocket_cms/admin.rb, line 19
def seo_config(is_active = true)
  Proc.new {
    if respond_to?(:active)
      active is_active
      label "SEO"
    else
      visible false
    end
    RocketCMS.seo_fields(self)
  }
end
seo_fields(s) click to toggle source
# File lib/rocket_cms/admin.rb, line 31
def seo_fields(s)
  s.instance_eval do
    field :h1, :string
    field :title, :string
    field :keywords, :text
    field :description, :text
    field :robots, :string

    field :og_title, :string
    if RocketCMS.shrine?
      field :og_image, :paperclip
    elsif RocketCMS.paperclip?
      field :og_image, :paperclip
    end
  end
end
shrine?() click to toggle source
# File lib/rocket_cms.rb, line 44
def shrine?
  defined?(::Shrine)
end
url_helper() click to toggle source
# File lib/rocket_cms.rb, line 51
def url_helper
  @@url_helper ||= RocketCMS::UrlHelper.new
end