public
Fork of radiant/radiant-multi-site-extension
Description: An extension for Radiant CMS that lets you serve multiple sites (domains) from a single instance.
Homepage:
Clone URL: git://github.com/zapnap/radiant-multi-site-extension.git
radiant-multi-site-extension / multi_site_extension.rb
100644 53 lines (41 sloc) 1.886 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Uncomment this if you reference any of your controllers in activate
 
class MultiSiteExtension < Radiant::Extension
  version "0.2"
  description %{ Enables virtual sites to be created with associated domain names.
Also scopes the sitemap view to any given page (or the root of an
individual site). }
  url "http://dev.radiantcms.org/svn/radiant/trunk/extensions/multi_site"
  
  define_routes do |map|
      map.resources :sites, :path_prefix => "/admin",
                  :member => {
                    :move_higher => :post,
                    :move_lower => :post,
                    :move_to_top => :put,
                    :move_to_bottom => :put
                  }
  end
  
  def activate
    require 'slugify'
    require_dependency 'application'
    
    Page.send :include, MultiSite::PageExtensions
    ResponseCache.send :include, MultiSite::ResponseCacheExtensions
    User.send :include, MultiSite::UserExtensions
    Layout.send :include, MultiSite::LayoutExtensions
 
    SiteController.send :include, MultiSite::SiteControllerExtensions
    Admin::PageController.send :include, MultiSite::PageControllerExtensions
    Admin::SnippetController.send :include, MultiSite::SnippetControllerExtensions
 
    Radiant::Config["dev.host"] = 'preview'
 
    # Add site navigation
    admin.page.index.add :top, "site_subnav"
    admin.tabs.add "Sites", "/admin/sites", :visibility => [:admin]
 
    # Make snippets visible only to admins and developers
    admin.tabs.remove "Snippets"
    admin.tabs.add "Snippets", "/admin/snippets", :before => "Layouts", :visibility => [:admin, :developer]
 
    # Add site admin scoping fields
    admin.user.edit.add :form, "site", :before => "edit_table_footer"
    admin.layout.edit.add :form, "site", :before => "edit_timestamp"
  end
  
  def deactivate
    admin.tabs.remove "Sites"
  end
  
end