Module: CamaleonCms::SiteHelper
- Included in:
- CamaleonController, HtmlMailer, PluginsHelper
- Defined in:
- app/helpers/camaleon_cms/site_helper.rb
Instance Method Summary collapse
-
#cama_current_site_host_port(args) ⇒ Object
add host + port to args of the current site visited (only if the request is coming from console or tasks i.e. not web browser) args: Hash sample: {} will return ‘localhost’, port: 3000.
-
#cama_get_list_layouts_files(post_type) ⇒ Object
get list layouts files of current theme return an array of layouts for current theme.
-
#cama_get_list_template_files(post_type) ⇒ Object
get list templates files of current theme.
-
#cama_is_test_request? ⇒ Boolean
check if the request created by draper or request is not defined.
-
#current_locale ⇒ Object
get locale language.
-
#current_site(site = nil) ⇒ Object
return current site or assign a site as a current site.
-
#current_theme ⇒ Object
return current theme model for current site.
-
#site_after_install(site, theme_key = nil) ⇒ Object
***************** administration HELPERS *********************** do common actions after site installation theme_key: theme slug of the theme for site.
-
#site_install_theme(key) ⇒ Object
install theme for current site.
-
#site_uninstall_theme ⇒ Object
uninstall current theme form current site.
Instance Method Details
#cama_current_site_host_port(args) ⇒ Object
add host + port to args of the current site visited (only if the request is coming from console or tasks i.e. not web browser) args: Hash sample: {} will return ‘localhost’, port: 3000
94 95 96 97 |
# File 'app/helpers/camaleon_cms/site_helper.rb', line 94 def cama_current_site_host_port(args) args[:host], args[:port] = current_site.try(:get_domain).to_s.split(':') if cama_is_test_request? args end |
#cama_get_list_layouts_files(post_type) ⇒ Object
get list layouts files of current theme return an array of layouts for current theme
38 39 40 41 42 43 44 45 46 |
# File 'app/helpers/camaleon_cms/site_helper.rb', line 38 def cama_get_list_layouts_files(post_type) contained_files = [] Dir[File.join(current_theme.settings["path"], "views", "layouts", '*')].each do |path| f_name = File.basename(path) contained_files << f_name.split(".").first unless f_name.start_with?('_') end _args={layouts: contained_files, post_type: post_type}; hooks_run("post_get_list_layouts", _args) _args[:layouts] end |
#cama_get_list_template_files(post_type) ⇒ Object
get list templates files of current theme
26 27 28 29 30 31 32 33 34 |
# File 'app/helpers/camaleon_cms/site_helper.rb', line 26 def cama_get_list_template_files(post_type) contained_files = [] Dir[File.join(current_theme.settings["path"], "views", '*')].each do |path| f_name = File.basename(path) contained_files << f_name.split(".").first if f_name.include?('template_') end _args={tempates: contained_files, post_type: post_type}; hooks_run("post_get_list_templates", _args) _args[:tempates] end |
#cama_is_test_request? ⇒ Boolean
check if the request created by draper or request is not defined
100 101 102 |
# File 'app/helpers/camaleon_cms/site_helper.rb', line 100 def cama_is_test_request? (request && defined?(ActionController::TestRequest) && request.is_a?(ActionController::TestRequest)) || !request end |
#current_locale ⇒ Object
get locale language
51 52 53 |
# File 'app/helpers/camaleon_cms/site_helper.rb', line 51 def current_locale I18n.locale.to_s end |
#current_site(site = nil) ⇒ Object
return current site or assign a site as a current site
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'app/helpers/camaleon_cms/site_helper.rb', line 3 def current_site(site = nil) @current_site = site.decorate if site.present? return $current_site if defined?($current_site) return @current_site if defined?(@current_site) if PluginRoutes.get_sites.size == 1 site = CamaleonCms::Site.first.decorate rescue nil else host = [request.original_url.to_s.parse_domain] host << request.subdomain if request.subdomain.present? site = CamaleonCms::Site.where(slug: host).first.decorate rescue nil end r = {site: site, request: (request rescue nil)}; cama_current_site_helper(r) rescue nil Rails.logger.error 'Camaleon CMS - Please define your current site: $current_site = CamaleonCms::Site.first.decorate or map your domains: http://camaleon.tuzitio.com/documentation/category/139779-examples/how.html'.cama_log_style(:red) if !r[:site].present? @current_site = r[:site] end |
#current_theme ⇒ Object
return current theme model for current site
21 22 23 |
# File 'app/helpers/camaleon_cms/site_helper.rb', line 21 def current_theme @_current_theme ||= current_site.get_theme.decorate end |
#site_after_install(site, theme_key = nil) ⇒ Object
***************** administration HELPERS *********************** do common actions after site installation theme_key: theme slug of the theme for site
58 59 60 61 62 63 64 65 |
# File 'app/helpers/camaleon_cms/site_helper.rb', line 58 def site_after_install(site, theme_key = nil) theme_key ||= site.get_theme_slug _s = current_site current_site(site) PluginRoutes.system_info["default_plugins"].each{|p| plugin_install(p) } # auto install plugins site_install_theme(theme_key) current_site(_s) if _s.present? end |
#site_install_theme(key) ⇒ Object
install theme for current site
68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'app/helpers/camaleon_cms/site_helper.rb', line 68 def site_install_theme(key) #uninstall previous theme site_uninstall_theme() # new theme current_site.set_option('_theme', key) theme = PluginRoutes.theme_info(key) current_site.themes.update_all(status: "inactive") theme_model = current_site.themes.where(slug: key).first_or_create!{|t| t.name = theme[:name]; } theme_model.update(status: nil) hook_run(theme, "on_active", theme_model) PluginRoutes.reload end |
#site_uninstall_theme ⇒ Object
uninstall current theme form current site
83 84 85 86 87 88 89 |
# File 'app/helpers/camaleon_cms/site_helper.rb', line 83 def site_uninstall_theme() key = current_site.get_theme_slug theme = PluginRoutes.theme_info(key) theme_model = current_site.get_theme(key) hook_run(theme, "on_inactive", theme_model) if theme_model.present? # theme_model.destroy end |