Sha256: 05c0dcf883ddcef6274a3b493d6fb698d87d38aea77ae61bd14862cb6b2d7d32

Contents?: true

Size: 1.71 KB

Versions: 1

Compression:

Stored size: 1.71 KB

Contents

=begin
  Camaleon CMS is a content management system
  Copyright (C) 2015 by Owen Peredo Diaz
  Email: owenperedo@gmail.com
  This program is free software: you can redistribute it and/or modify   it under the terms of the GNU Affero General Public License as  published by the Free Software Foundation, either version 3 of the  License, or (at your option) any later version.
  This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  See the  GNU Affero General Public License (GPLv3) for more details.
=end
class CamaleonCms::Apps::PluginsFrontController < CamaleonCms::FrontendController
  before_action :init_plugin
  layout Proc.new { |controller|
           if current_theme.settings["gem_mode"]
             "themes/#{current_theme.slug}/layouts/index"
           else
             "themes/#{current_theme.slug}/views/layouts/index"
           end
         }

  private
  def init_plugin
    plugin_name = params[:controller].split("/")[1]
    @plugin = current_site.plugins.where(slug: plugin_name).first_or_create
    unless @plugin.active?
      flash[:error] = t("camaleon_cms.plugin_not_installed", default: "This plugin is not installed, please contact to the administrator.")
      redirect_to cama_root_url
      return
    end
    lookup_context.prefixes.prepend(params[:controller].sub("plugins/#{plugin_name}", "#{plugin_name}/views")) if !@plugin.settings["gem_mode"].present?
    lookup_context.prefixes.append("themes/#{current_theme.slug}") if current_theme.settings["gem_mode"]
    lookup_context.prefixes.append("themes/#{current_theme.slug}/views") unless current_theme.settings["gem_mode"]
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
camaleon_cms-2.1.2.1 app/controllers/camaleon_cms/apps/plugins_front_controller.rb