Sha256: a20a16d21d125c1ed335265cab06234fa48ce5b85793af624e46d8808edcec3e

Contents?: true

Size: 990 Bytes

Versions: 22

Compression:

Stored size: 990 Bytes

Contents

module MultiSite::ResourceControllerExtensions

  def self.included(base)
    base.class_eval {
      alias_method_chain :discover_current_site, :input
    }
  end

  def current_site=(site=nil)
    Page.current_site = site
    set_session_site
  end
  
  # among other things this determines whether the site chooser is shown in the submenu

  def sited_model?
    model_class == Page || model_class.is_site_scoped?
  end
  
protected

  def discover_current_site_with_input
    site_from_param || site_from_session || discover_current_site_without_input
  end
  
  # for interface consistency we want to be able to remember site choices between requests
  
  def set_session_site(site_id=nil)
    site_id ||= current_site.id.to_s if current_site.is_a? Site
    session[:site_id] = site_id
  end

  def site_from_session
    session[:site_id] && Site.find(session[:site_id]) rescue nil
  end

  def site_from_param
    params[:site_id] && Site.find(params[:site_id]) rescue nil
  end

end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
trusty-multi-site-extension-3.0.1 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-3.0.0 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.11 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.10 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.9 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.7 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.6 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.5 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.4 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.3 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.2 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.1.pre.beta lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-2.0.0.pre.beta lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-1.2.1 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-1.2.0 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-1.1.5 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-1.1.4 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-1.0.4 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-1.0.3 lib/multi_site/resource_controller_extensions.rb
trusty-multi-site-extension-1.0.2 lib/multi_site/resource_controller_extensions.rb