Module: MultiSite::PagesControllerExtensions

Defined in:
lib/multi_site/pages_controller_extensions.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/multi_site/pages_controller_extensions.rb', line 2

def self.included(base)
  base.class_eval {
    alias_method_chain :discover_current_site, :root
    alias_method_chain :index, :site
    alias_method_chain :continue_url, :site
    alias_method_chain :remove, :back
    responses.destroy.default do
      return_url = session[:came_from]
      session[:came_from] = nil
      if model.class == Page or model.class < Page
        redirect_to return_url || admin_pages_url(:site_id => model.site.id)
      else
        redirect_to continue_url(params)
      end
    end
  }
end

Instance Method Details

#continue_url_with_site(options = {}) ⇒ Object



45
46
47
# File 'lib/multi_site/pages_controller_extensions.rb', line 45

def continue_url_with_site(options={})
  options[:redirect_to] || (params[:continue] ? edit_admin_page_url(model) : admin_pages_url(:site_id => model.site.id))
end

#discover_current_site_with_rootObject

for compatibility with the standard issue of multi_site, a root parameter overrides other ways of setting site



23
24
25
# File 'lib/multi_site/pages_controller_extensions.rb', line 23

def discover_current_site_with_root
  site_from_root || discover_current_site_without_root
end

#index_with_siteObject



33
34
35
36
37
38
# File 'lib/multi_site/pages_controller_extensions.rb', line 33

def index_with_site
  @site ||= Page.current_site
  @homepage ||= @site.homepage if @site
  @homepage ||= Page.homepage
  response_for :plural
end

#remove_with_backObject



40
41
42
43
# File 'lib/multi_site/pages_controller_extensions.rb', line 40

def remove_with_back
  session[:came_from] = request.env["HTTP_REFERER"]
  remove_without_back
end

#site_from_rootObject



27
28
29
30
31
# File 'lib/multi_site/pages_controller_extensions.rb', line 27

def site_from_root
  if params[:root] && @homepage = Page.find(params[:root])
    @site = @homepage.root.site
  end
end