Sha256: 031224047519a74a0f8699215b86a021e25bf2e20a68224946f88e220a4b03ee

Contents?: true

Size: 1.71 KB

Versions: 2

Compression:

Stored size: 1.71 KB

Contents

module CamaleonCms
  class Plugin < CamaleonCms::TermTaxonomy
    include CamaleonCms::CommonRelationships

    # attrs:
    #   term_group => status active (1, nil)
    #   slug => plugin key
    #   name => plugin name

    attr_accessor :error

    belongs_to :site, foreign_key: :parent_id, required: false

    default_scope { where(taxonomy: :plugin) }
    scope :active, -> { where(term_group: 1) }

    before_validation :set_default
    before_destroy :destroy_custom_fields

    # active the plugin
    def active
      self.term_group = 1
      save
    end

    # inactive the plugin
    def inactive
      self.term_group = nil
      save
    end

    # check if plugin is active
    def active?
      term_group.to_s == '1'
    end

    # return theme settings configured in config.json
    def settings
      PluginRoutes.plugin_info(slug)
    end

    # check if current installation version is older
    # return boolean
    def old_version?
      # self.installed_version.to_s != self.settings["version"].to_s
      false
    end

    # set a new installation version for this plugin
    def installed_version=(version)
      set_option('version_installed', version)
    end

    # return gem installed version
    def installed_version
      ''

      # res = get_option('version_installed')
      # unless res.present? # fix for old installations
      #   res = settings['version']
      #   self.installed_version = res
      # end
      # res
    end

    # return the title of this plugin
    def title
      PluginRoutes.plugin_info(slug)['title']
    end

    private

    def set_default
      self.name = slug unless name.present?
    end

    def destroy_custom_fields
      get_field_groups.destroy_all
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
camaleon_cms-2.7.2 app/models/camaleon_cms/plugin.rb
camaleon_cms-2.7.1 app/models/camaleon_cms/plugin.rb