camaleon_cms 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of camaleon_cms might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 172ad82621088cd3ba8a3500d1802dd2d5946297
4
- data.tar.gz: 7e6d38e9b55c818502af17c5dcbf6e5d7d463cf4
3
+ metadata.gz: 86c5a7115b4f87254af8ba53628179b7b6304a87
4
+ data.tar.gz: 008600c9651dd60a96ce27fafba73ff9382ed0ed
5
5
  SHA512:
6
- metadata.gz: 4fbe08809da6873778f890d68781a5590dc37c5a1b7494299a593390bbc54ec8be38fc3997157930e15fedbd1078b579fdffdd54ccf1b08d21ea0be260eb3fc0
7
- data.tar.gz: 2bab345c0dde92e94e82f32329f3bbbf294635fac9e19006720438b71bf0825cb00573efd6dea850d6d2b1b45806cf604580164606b5852d12566efea9821ab8
6
+ metadata.gz: f0720ca7d3b7530b926b2ee3065b14893a766470890fdc297be2cc7903c6c68dca42d13a2edf2dcd58e552cf4b3ea0a44e91be645c86f20c88c924883cbb5402
7
+ data.tar.gz: 67eff63900f35a31c009994939e87d82349e830f6b29ad94f455e1e852f072a64bc68544a2f9bce9c1d3c25b3067ca7f656b8af1749ea7981b16f6bf77e7455c
@@ -12,6 +12,7 @@ module Plugins::FrontCache::FrontCacheHelper
12
12
  def front_cache_front_before_load
13
13
  return if signin?
14
14
  cache_key = front_cache_get_key
15
+ ActionController::Base.page_cache_directory = Rails.root.join("tmp", "cache", "pages")
15
16
  if page_cache_exist?(cache_key) # recover cache file
16
17
  Rails.logger.info "============================================== readed cache: #{cache_key}"
17
18
  render text: File.read(page_cache_get(cache_key)).gsub("{{form_authenticity_token}}", form_authenticity_token)
@@ -133,7 +134,7 @@ module Plugins::FrontCache::FrontCacheHelper
133
134
  # clear all frontend cache files
134
135
  def front_cache_clean
135
136
  FileUtils.rm_f(cache_store.cache_path) # clear fragment caches
136
- FileUtils.rm_rf(File.join(Rails.application.config.action_controller.page_cache_directory, current_site.id.to_s)) # clear site pages cache
137
+ FileUtils.rm_rf(File.join(ActionController::Base.page_cache_directory, current_site.id.to_s)) # clear site pages cache
137
138
  end
138
139
 
139
140
  private
@@ -57,10 +57,10 @@ module Plugins::VisibilityPost::VisibilityPostHelper
57
57
  def plugin_visibility_filter_post(args)
58
58
  args[:active_record] = args[:active_record].where("(posts.published_at is null or posts.published_at <= ?)", Time.now)
59
59
  if signin?
60
- if ActiveRecord::Base.connection.adapter_name.downcase.include?("sqlite")
61
- args[:active_record] = args[:active_record].where("visibility != 'private' or (visibility = 'private' and (',' || posts.visibility_value || ',') LIKE '%,#{current_site.visitor_role},%')")
62
- else
60
+ if ActiveRecord::Base.connection.adapter_name.downcase.include?("mysql")
63
61
  args[:active_record] = args[:active_record].where("visibility != 'private' or (visibility = 'private' and FIND_IN_SET(?, posts.visibility_value))", current_site.visitor_role)
62
+ else
63
+ args[:active_record] = args[:active_record].where("visibility != 'private' or (visibility = 'private' and (',' || posts.visibility_value || ',') LIKE '%,#{current_site.visitor_role},%')")
64
64
  end
65
65
  else
66
66
  args[:active_record] = args[:active_record].where("visibility != 'private'")
@@ -7,7 +7,7 @@
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1" />
8
8
  <!-- END META SECTION -->
9
9
 
10
- <%= stylesheet_link_tag theme_asset_path("css/main") %>
10
+ <%= stylesheet_link_tag theme_asset_path("css/main.css") %>
11
11
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
12
12
  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Montserrat%3A400%2C700&ver=4.2.2">
13
13
  <%= javascript_include_tag theme_asset_path("js/main.js") %>
@@ -7,7 +7,7 @@
7
7
  <meta content="width=device-width, initial-scale=1" name="viewport" />
8
8
  <!-- END META SECTION -->
9
9
  <%#= javascript_include_tag theme_asset_path("js/main.js") %>
10
- <%= stylesheet_link_tag theme_asset_path("css/main") %>
10
+ <%= stylesheet_link_tag theme_asset_path("css/main.css") %>
11
11
  <%= stylesheet_link_tag theme_asset_path("genericons/genericons.css") %>
12
12
  <%= raw the_head %>
13
13
  </head>
@@ -8,7 +8,7 @@
8
8
  <meta name="viewport" content="width=device-width, initial-scale=1" />
9
9
  <!-- END META SECTION -->
10
10
 
11
- <%= stylesheet_link_tag theme_asset_path("css/main") %>
11
+ <%= stylesheet_link_tag theme_asset_path("css/main.css") %>
12
12
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
13
13
  <%= javascript_include_tag theme_asset_path("js/main.js") %>
14
14
  <%= raw the_head %>
@@ -24,10 +24,11 @@ class SiteDecorator < TermTaxonomyDecorator
24
24
  end
25
25
 
26
26
  # return all contents from this site registered for post_type = slug (filter visibility, hidden, expired, ...)
27
- # slug_or_id: slug or id of the post_type, default 'post'
27
+ # slug_or_id: slug or id of the post_type or array of slugs, default 'post'
28
28
  def the_contents(slug_or_id = "post")
29
29
  return h.verify_front_visibility(object.posts.where("term_taxonomy.id = ?", slug_or_id)) if slug_or_id.is_a?(Integer)
30
30
  return h.verify_front_visibility(object.posts.where("term_taxonomy.slug = ?", slug_or_id)) if slug_or_id.is_a?(String)
31
+ return h.verify_front_visibility(object.posts.where("term_taxonomy.slug in (?)", slug_or_id)) if slug_or_id.is_a?(Array)
31
32
  end
32
33
 
33
34
  # return all contents for this site registered for post_type = slug (filter visibility, hidden, expired, ...)
@@ -152,7 +152,7 @@ module Admin::MenusHelper
152
152
  bool = false
153
153
  menus.each_with_index do |menu, index_menu|
154
154
  menu[:key] = "#{parent_index}__#{rand(999...99999)}" if menu[:key].nil?
155
- uri = URI(menu[:url])
155
+ uri = URI(menu[:url].to_s)
156
156
  url_path = uri.path
157
157
  url_query = uri.query
158
158
  bool = url_path.to_s == _url.to_s && url_path.present?
@@ -78,13 +78,22 @@ module PluginsHelper
78
78
 
79
79
  # return plugin full asset path
80
80
  # plugin_key: plugin name
81
- # if asset is present return full path to this asset
82
- # sample: <script src="<%= plugin_asset_path("my_plugin", "js/admin.js") %>"></script>
83
- def plugin_asset_path(plugin_key, asset = nil)
84
- # "#{root_url(locale: nil)}assets/plugins/#{plugin_key}/assets/#{asset}"
85
- "plugins/#{plugin_key}/assets/#{asset}"
81
+ # asset: (String) asset name
82
+ # sample: <script src="<%= plugin_asset_path("my_plugin", "js/admin.js") %>"></script> => /assets/plugins/my_plugin/assets/css/main-54505620f.css
83
+ def plugin_asset_path(plugin_key, asset)
84
+ asset_url("plugins/#{plugin_key}/assets/#{asset}")
86
85
  end
87
86
 
87
+ # return the full url for asset of current plugin:
88
+ # asset: (String) asset name
89
+ # plugin_key: (optional) plugin name, default (current plugin caller to this function)
90
+ # sample:
91
+ # plugin_asset_url("css/main.css") => return: http://myhost.com/assets/plugins/my_plugin/assets/css/main-54505620f.css
92
+ def plugin_asset_url(asset, plugin_key = nil)
93
+ asset_url("plugins/#{plugin_key || self_plugin_key}/assets/#{asset}")
94
+ end
95
+
96
+
88
97
  # auto load all helpers of this plugin
89
98
  def plugin_load_helpers(plugin)
90
99
  return if !plugin.present? || !plugin["helpers"].present?
@@ -89,7 +89,9 @@ module SiteHelper
89
89
  # new theme
90
90
  current_site.set_option('_theme', key)
91
91
  theme = PluginRoutes.theme_info(key)
92
+ current_site.themes.update_all(status: "inactive")
92
93
  theme_model = current_site.themes.where(slug: key).first_or_create!{|t| t.name = theme[:name]; }
94
+ theme_model.update(status: nil)
93
95
  hook_run(theme, "on_active", theme_model)
94
96
  PluginRoutes.reload
95
97
  end
@@ -100,7 +102,7 @@ module SiteHelper
100
102
  theme = PluginRoutes.theme_info(key)
101
103
  theme_model = current_site.get_theme(key)
102
104
  hook_run(theme, "on_inactive", theme_model) if theme_model.present?
103
- theme_model.destroy
105
+ # theme_model.destroy
104
106
  end
105
107
 
106
108
 
@@ -24,10 +24,18 @@ module ThemeHelper
24
24
  # return theme full asset path
25
25
  # theme_name: theme name, if nil, then will use current theme
26
26
  # asset: asset file name, if asset is present return full path to this asset
27
- # sample: <script src="<%= theme_asset_path("js/admin.js") %>"></script>
27
+ # sample: <script src="<%= theme_asset_path("js/admin.js") %>"></script> => return: /assets/themes/my_theme/assets/css/main-54505620f.css
28
28
  def theme_asset_path(asset = nil, theme_name = nil)
29
- # "#{root_url(locale: nil)}assets/themes/#{theme_name || current_theme.slug }/assets/#{asset}"
30
- "themes/#{theme_name || current_theme.slug }/assets/#{asset}"
29
+ asset_url("themes/#{theme_name || current_theme.slug }/assets/#{asset}")
30
+ end
31
+
32
+ # return the full url for asset of current theme:
33
+ # asset: (String) asset name
34
+ # theme_name: (optional) theme name, default (current theme caller to this function)
35
+ # sample:
36
+ # theme_asset_url("css/main.css") => return: http://myhost.com/assets/themes/my_theme/assets/css/main-54505620f.css
37
+ def theme_asset_url(asset, theme_name = nil)
38
+ asset_url("themes/#{theme_name || current_theme.slug }/assets/#{asset}")
31
39
  end
32
40
 
33
41
  # return theme full view path
data/app/models/site.rb CHANGED
@@ -94,7 +94,7 @@ class Site < TermTaxonomy
94
94
  # return theme model with slug theme_slug for this site
95
95
  # theme_slug: (optional) if it is null, this will return current theme for this site
96
96
  def get_theme(theme_slug = nil)
97
- self.themes.where(slug: (theme_slug || get_theme_slug)).first_or_create!
97
+ self.themes.where(slug: (theme_slug || get_theme_slug), status: nil).first_or_create!
98
98
  end
99
99
 
100
100
  # return plugin model with slug plugin_slug
@@ -37,8 +37,8 @@
37
37
  <div class="panel-footer text-muted text-right">
38
38
  <% if current_theme.slug == theme[:key] && params[:set].nil? %>
39
39
  <% r = {links: []}; hook_run(theme, "theme_options", r) %>
40
- <% r[:links] << link_to(raw('&nbsp;&nbsp;Import Data (data.json)&nbsp;'), admin_plugins_export_content_settings_path(file: ["app", "apps", 'themes', theme[:key], 'data.json'].join("/"))) if current_site.plugin_installed?('export_content') && File.exist?(Rails.root.join("app", "apps", 'themes', theme[:key], 'data.json')) %>
41
- <% r[:links] << link_to(raw('&nbsp;&nbsp;Import Data (data.json)&nbsp;'), "#", {'onclick' => "alert('You need to install import/export plugin to import sample data.'); return false;"}) if !current_site.plugin_installed?('export_content') && File.exist?(Rails.root.join("app", "apps", 'themes', theme[:key], 'data.json')) %>
40
+ <% r[:links] << link_to(raw('&nbsp;&nbsp;Import Data (data.json)&nbsp;'), admin_plugins_export_content_settings_path(file: ["app", "apps", 'themes', theme[:key], 'data.json'].join("/"))) if current_site.plugin_installed?('export_content') && File.exist?(File.join(theme["path"], "data.json")) %>
41
+ <% r[:links] << link_to(raw('&nbsp;&nbsp;Import Data (data.json)&nbsp;'), "#", {'onclick' => "alert('You need to install import/export plugin to import sample data.'); return false;"}) if !current_site.plugin_installed?('export_content') && File.exist?(File.join(theme["path"], "data.json")) %>
42
42
  <%= raw r[:links].join(" | ") %>
43
43
  <span class="btn btn-success"><%= t('admin.button.actived').upcase %></span>
44
44
  <% else %>
@@ -1,5 +1,5 @@
1
1
  <%
2
- theme_settings_file = Rails.root.join("app", "apps", 'themes', current_site.get_theme_slug, 'views/admin/settings.html.erb').to_s
2
+ theme_settings_file = File.join(current_theme.settings["path"], "views/admin/settings.html.erb").to_s
3
3
  @site.slug = PluginRoutes.system_info["base_domain"] if current_site.main_site?
4
4
  groups = @site.get_field_groups()
5
5
  %>
@@ -45,7 +45,6 @@ module CamaleonCms
45
45
 
46
46
  # cache control
47
47
  app.config.cache_store = :file_store, Rails.root.join("tmp","cache","vars")
48
- app.config.action_controller.page_cache_directory = Rails.root.join("tmp","cache","pages")# (pending for error)
49
48
 
50
49
  # extra configuration for plugins
51
50
  app.config.autoload_paths += %W{#{app.config.root}/app/apps/**/}
@@ -1,3 +1,3 @@
1
1
  module CamaleonCms
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -80,7 +80,6 @@ class PluginRoutes
80
80
  camaleon_gem = get_gem('camaleon_cms')
81
81
  return {} if !camaleon_gem
82
82
  r = cache_variable("system_info"); return r unless r.nil?
83
- res = {}
84
83
  res = JSON.parse(File.read(File.join(camaleon_gem.gem_dir, "config", "system.json")))
85
84
  res = res.with_indifferent_access rescue res
86
85
  return cache_variable("system_info", res) unless File.exist?(system_file = File.join(apps_dir, "..", '..', "config", "system.json"))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camaleon_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Owen Peredo Diaz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-24 00:00:00.000000000 Z
11
+ date: 2015-08-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Camaleon CMS is a dynamic and advanced content management system based
14
14
  on Ruby on Rails 4 as an alternative to Wordpress.