Sha256: dc1bc89e08991fe6342a883a396fa6e715509801d26c991bf6158913636c7341

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

module Skyline::Rendering::Helpers::SettingsHelper
  # A safe way to get a value of a setting and report a warning if it can't be found  
  # instead of calling Setting[:setting_identifier].field directly use setting(:setting_identifier, :field)
  # 
  # @param setting_identifier [Symbol] the symbol of the settings page
  # @param field [Symbol] the name of the setting
  # 
  # @return Object the value of the setting or nil if not found
  def setting(setting_identifier, field)
    if s = ::Settings[setting_identifier] 
      if s.respond_to?(field)
        return s.send(field)
      end
    end
    Rails.logger.warn "Couldn't find Setting[:#{setting_identifier}].#{field}"
    nil
  end
  
  # a safe way to get a page from the settings  
  # 
  # @param setting_identifier [Symbol] the symbol of the settings page
  # @param field [Symbol] the name of the setting that references a page_id
  # 
  # @return [Page,nil] The page if found, nil otherwise
  def page_from_setting(setting_identifier, field)
    if page_id = setting(setting_identifier, field)
      return Skyline::Page.find_by_id(page_id) if page_id.present?
    end    
    nil
  end  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
skylinecms-3.0.7 lib/skyline/rendering/helpers/settings_helper.rb