camaleon_cms 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.

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: f563bcf2d58db0bb34eb164a1e983395142b143b
4
- data.tar.gz: 80d1a9b4536d849d0166841bb38de5b8077e06e6
3
+ metadata.gz: c1ba5c936124f4f5012e985ffa2380addcb3b741
4
+ data.tar.gz: e9aced89daa293cfaca1717564102bfd4c19b7b2
5
5
  SHA512:
6
- metadata.gz: efcd7e9bf29c89ade2035d86e489247b1b99b6fa8927123236286fb6d9ff07920243b2c649f836f4687aad0ada8d97715c2bcf711c263dc993bcd914dce27440
7
- data.tar.gz: a90a0451c52fb454d1d50510673acdb7bfce6d39e3fdeb93c9abc43ba4b2cfa82ee9563d1d767cc2fedc6861bbab16ed83f7f81fe5161e1b9226518dee7b4110
6
+ metadata.gz: 32c21dbff1283ac8e05ef6d59cc6f3f03c495684b57f302d99147bf2dd7de4339dfe3aa8164d4b3d501b453f50c4807501d7fead43c533f00ef228ca2eafa792
7
+ data.tar.gz: bbe6bc4fc4ea279ec53846f18d91b67ff59930ec64ac03f41b0216f29037a1f7325cee18e2bf37ffbd2373b67e73b365503ee8f26090d36c3144de936def94ae
data/README.md CHANGED
@@ -28,8 +28,8 @@
28
28
  * Add the gem in your Gemfile
29
29
 
30
30
  ```
31
- gem "camaleon_cms", github: 'owen2345/camaleon-cms', branch: "moduler" # version 2
32
- # If you are using Camaleon CMS 1x, you can use this patch to use this new version
31
+ gem "camaleon_cms"
32
+ # If you are using Camaleon CMS 1x, you need to use this patch
33
33
  gem "migration1x", github: 'owen2345/camaleoncms_1xmigration'
34
34
  ```
35
35
  * Install required Gem and dependencies
@@ -37,7 +37,7 @@
37
37
  ```
38
38
  bundle install
39
39
  ```
40
- * Install the CMS (This will copy some basic templates and plugins in your project)
40
+ * Install the CMS (before this, you can change defaut configuration in config/system.json)
41
41
 
42
42
  ```
43
43
  rails generate camaleon_cms:install
@@ -52,6 +52,7 @@
52
52
  ```
53
53
  rails server # and then go to your browser http://localhost:3000/
54
54
  ```
55
+ Previous stable version (1x): https://github.com/owen2345/camaleon-cms/tree/version_1x
55
56
 
56
57
  # Camaleon CMS (It adapts to your needs)
57
58
 
@@ -85,6 +86,7 @@ It was released on July, 2015 and tested previously with more than 20 projects b
85
86
  - Easy migration from wordpress
86
87
 
87
88
  ## Some features are:
89
+ * Integrate into existent Ruby on Rails Projects
88
90
  * Easy administration
89
91
  Camaleon CMS permit you to adapt the CMS to all your needs and not you adapt to the CMS.
90
92
  I.E. you can create your custom architecture with all attributes that you need for each kind of content.
@@ -17,6 +17,8 @@ class CamaleonCms::Admin::MediaController < CamaleonCms::AdminController
17
17
  authorize! :manager, :media
18
18
  @show_file_actions = true
19
19
  add_breadcrumb I18n.t("camaleon_cms.admin.sidebar.media")
20
+ render "index"
21
+ cama_draw_timer
20
22
  end
21
23
 
22
24
  # crop a image to save as a new file
@@ -20,7 +20,6 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
20
20
  # home page for frontend
21
21
  def index
22
22
  @cama_visited_home = true
23
- cama_init_seo(current_site)
24
23
  if @_site_options[:home_page].present?
25
24
  render_post(@_site_options[:home_page].to_i)
26
25
  else
@@ -39,7 +38,6 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
39
38
  return page_not_found
40
39
  end
41
40
  @cama_visited_category = @category
42
- cama_init_seo(@category)
43
41
  @children = @category.children.no_empty.decorate
44
42
  @posts = @category.the_posts.paginate(:page => params[:page], :per_page => current_site.front_per_page).eager_load(:metas)
45
43
  r_file = lookup_context.template_exists?("categories/#{@category.the_slug}") ? "categories/#{@category.the_slug}" : "category"
@@ -56,7 +54,6 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
56
54
  return page_not_found
57
55
  end
58
56
  @cama_visited_post_type = @post_type
59
- cama_init_seo(@post_type)
60
57
  @posts = @post_type.the_posts.paginate(:page => params[:page], :per_page => current_site.front_per_page).eager_load(:metas)
61
58
  @categories = @post_type.categories.no_empty.eager_load(:metas).decorate
62
59
  @post_tags = @post_type.post_tags.eager_load(:metas)
@@ -75,7 +72,6 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
75
72
  return page_not_found
76
73
  end
77
74
  @cama_visited_tag = @post_tag
78
- cama_init_seo(@post_tag)
79
75
  @posts = @post_tag.the_posts.paginate(:page => params[:page], :per_page => current_site.front_per_page).eager_load(:metas)
80
76
  r_file = lookup_context.template_exists?("post_tags/#{@post_tag.the_slug}") ? "post_tags/#{@post_tag.the_slug}" : "post_tag"
81
77
  layout_ = lookup_context.template_exists?("layouts/post_tags/#{@post_tag.the_slug}") ? "post_tags/#{@post_tag.the_slug}" : (self.send :_layout)
@@ -124,7 +120,6 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
124
120
  return page_not_found
125
121
  end
126
122
  @cama_visited_profile = true
127
- cama_init_seo(@user)
128
123
  layout_ = lookup_context.template_exists?("layouts/profile") ? "profile" : (self.send :_layout)
129
124
  r = {user: @user, layout: layout_, render: "profile"}; hooks_run("on_render_profile", r)
130
125
  render r[:render], layout: r[:layout]
@@ -158,7 +153,6 @@ class CamaleonCms::FrontendController < CamaleonCms::CamaleonController
158
153
  else
159
154
  @post = @post.decorate
160
155
  @cama_visited_post = @post
161
- cama_init_seo(@post)
162
156
  @post_type = @post.the_post_type
163
157
  @comments = @post.the_comments
164
158
  @categories = @post.the_categories
@@ -44,11 +44,6 @@ class CamaleonCms::ApplicationDecorator < Draper::Decorator
44
44
  h.breadcrumb_draw
45
45
  end
46
46
 
47
- # build the attributes for this model
48
- def the_seo
49
- h.cama_build_seo({ image: (the_thumb_url() rescue nil), title: the_title, description: the_excerpt, keywords: the_keywords, object: self })
50
- end
51
-
52
47
  # ---------------------
53
48
  def set_decoration_locale(locale)
54
49
  @_deco_locale = locale.to_sym
@@ -35,11 +35,6 @@ class CamaleonCms::UserDecorator < CamaleonCms::ApplicationDecorator
35
35
  object.get_meta("slogan", "Hello World")
36
36
  end
37
37
 
38
- # generate all seo attributes for profile page
39
- def the_seo
40
- h.cama_build_seo({ image: (the_avatar rescue nil), title: the_name, object: self })
41
- end
42
-
43
38
  # return front url for this user
44
39
  def the_url(*args)
45
40
  args = args.extract_options!
@@ -16,7 +16,7 @@ module CamaleonCms::CamaleonHelper
16
16
  # layout_name: path of the template to render
17
17
  # template_name: template name to render in template_path
18
18
  def sendmail(email,subject='Tiene una notificacion',content='',from=nil,attachs=[],template_name = 'mailer', layout_name = 'camaleon_cms/mailer')
19
- Thread.abort_on_exception=true
19
+ # Thread.abort_on_exception=true
20
20
  Thread.new do
21
21
  HtmlMailer.sender(email, subject, content, from, attachs, cama_root_url, current_site, template_name, layout_name).deliver_now
22
22
  ActiveRecord::Base.connection.close
@@ -92,4 +92,10 @@ module CamaleonCms::CamaleonHelper
92
92
  cache
93
93
  end
94
94
 
95
+ def cama_draw_timer
96
+ @_cama_timer ||= Time.current
97
+ puts "***************************************** timer: #{((Time.current - @_cama_timer) * 24 * 60 * 60).to_i} (#{caller.first})"
98
+ @_cama_timer = Time.current
99
+ end
100
+
95
101
  end
@@ -7,22 +7,42 @@
7
7
  See the GNU Affero General Public License (GPLv3) for more details.
8
8
  =end
9
9
  module CamaleonCms::Frontend::SeoHelper
10
- def cama_init_seo(model)
11
- @_seo_info = model.the_seo
12
- end
13
-
14
10
  # add seo attributes to your page
15
11
  # you can pass custom data to overwrite default data generated by the system
16
12
  def cama_the_seo(data = {})
17
- (@_seo_info ||= {}).merge(data)
13
+ if is_home?
14
+ data2 = {}
15
+ elsif is_page?
16
+ data2 = {image: @cama_visited_post.the_thumb_url, title: @cama_visited_post.the_title, description: @cama_visited_post.the_excerpt, keywords: @cama_visited_post.the_keywords, object: @cama_visited_post }
17
+ elsif is_ajax?
18
+ data2 = {}
19
+ elsif is_search?
20
+ data2 = {title: "#{current_site.the_title} | #{ct("search_title", default: "Search")}"}
21
+ elsif is_post_type?
22
+ data2 = {image: @cama_visited_post_type.the_thumb_url, title: @cama_visited_post_type.the_title, description: @cama_visited_post_type.the_excerpt, keywords: @cama_visited_post_type.the_keywords, object: @cama_visited_post_type }
23
+ elsif is_post_tag?
24
+ data2 = {image: @cama_visited_tag.the_thumb_url, title: @cama_visited_tag.the_title, description: @cama_visited_tag.the_excerpt, keywords: @cama_visited_tag.the_keywords, object: @cama_visited_tag }
25
+ elsif is_category?
26
+ data2 = {image: @cama_visited_category.the_thumb_url, title: @cama_visited_category.the_title, description: @cama_visited_category.the_excerpt, keywords: @cama_visited_category.the_keywords, object: @cama_visited_category }
27
+ else
28
+ data2 = {}
29
+ end
30
+ cama_build_seo((@_cama_seo_default_values || {}).merge(data2).merge(data))
31
+ end
32
+
33
+ # permit to define define default seo attributes by code without hooks
34
+ # @Sample: cama_seo_default({title: "my custom title", description: "my descr", keywords: "my keywords", image: 'my img url'})
35
+ def cama_seo_default(options)
36
+ @_cama_seo_default_values ||= {}
37
+ @_cama_seo_default_values = @_cama_seo_default_values.merge(options)
18
38
  end
19
39
 
20
40
  # create seo attributes with options + default attributes
21
- def cama_build_seo(options)
41
+ def cama_build_seo(options = {})
22
42
  options[:image] = options[:image] || current_site.get_option("screenshot", current_site.the_logo)
23
- options[:title] = I18n.transliterate(is_home? ? current_site.the_title : "#{current_site.the_title} | #{options[:title]}")
24
- options[:description] = I18n.transliterate(is_home? ? current_site.the_option("seo_description") : options[:description].to_s)
25
- options[:keywords] = I18n.transliterate(is_home? ? current_site.the_option("keywords") : options[:keywords].to_s)
43
+ options[:title] = I18n.transliterate(options[:title].present? ? "#{current_site.the_title} | #{options[:title]}" : current_site.the_title)
44
+ options[:description] = I18n.transliterate(options[:description].present? ? options[:description].to_s : current_site.the_option("seo_description"))
45
+ options[:keywords] = I18n.transliterate(options[:keywords].present? ? options[:keywords] : current_site.the_option("keywords"))
26
46
  options[:url] = request.original_url
27
47
  s = {
28
48
  title: options[:title],
@@ -26,32 +26,37 @@ module CamaleonCms::Frontend::SiteHelper
26
26
 
27
27
  # check if current section visited is for post
28
28
  def is_page?
29
- ["camaleon_cms/frontend", "frontend"].include?(params[:controller]) && params[:action] == "post"
29
+ @cama_visited_post.present?
30
+ end
31
+
32
+ # check if current section visited is for post
33
+ def is_profile?
34
+ @cama_visited_profile.present?
30
35
  end
31
36
 
32
37
  # check if current section visited is for ajax
33
38
  def is_ajax?
34
- ["camaleon_cms/frontend", "frontend"].include?(params[:controller]) && params[:action] == "ajax"
39
+ @cama_visited_ajax.present?
35
40
  end
36
41
 
37
42
  # check if current section visited is for search
38
43
  def is_search?
39
- ["camaleon_cms/frontend", "frontend"].include?(params[:controller]) && params[:action] == "search"
44
+ @cama_visited_search.present? || ["camaleon_cms/frontend", "frontend"].include?(params[:controller]) && params[:action] == "search"
40
45
  end
41
46
 
42
47
  # check if current section visited is for post type
43
48
  def is_post_type?
44
- ["camaleon_cms/frontend", "frontend"].include?(params[:controller]) && params[:action] == "post_type"
49
+ @cama_visited_post_type.present?
45
50
  end
46
51
 
47
52
  # check if current section visited is for post tag
48
53
  def is_post_tag?
49
- params[:controller] == "frontend" && params[:action] == "post_tag"
54
+ @cama_visited_tag.present?
50
55
  end
51
56
 
52
57
  # check if current section visited is for category
53
58
  def is_category?
54
- ["camaleon_cms/frontend", "frontend"].include?(params[:controller]) && params[:action] == "category"
59
+ @cama_visited_category.present?
55
60
  end
56
61
  #**************** end section is a? ****************#
57
62
 
@@ -62,6 +67,6 @@ module CamaleonCms::Frontend::SiteHelper
62
67
  def the_head(seo_attrs = {}, show_seo = true)
63
68
  icon = "<link rel='shortcut icon' href='#{current_site.the_icon}'>"
64
69
  js = "<script>var ROOT_URL = '#{cama_root_url}'; var LANGUAGE = '#{I18n.locale}'; </script>"
65
- icon + "\n" + (csrf_meta_tag || "") + "\n" + (show_seo ? display_meta_tags(cama_the_seo.merge(seo_attrs)) : "") + "\n" + js + "\n" + cama_draw_custom_assets
70
+ icon + "\n" + (csrf_meta_tag || "") + "\n" + (show_seo ? display_meta_tags(cama_the_seo(seo_attrs)) : "") + "\n" + js + "\n" + cama_draw_custom_assets
66
71
  end
67
72
  end
@@ -197,7 +197,9 @@ module CamaleonCms::UploaderHelper
197
197
  # sample: cama_media_find_folder("test/exit")
198
198
  def cama_media_find_folder(path = "")
199
199
  res = nil
200
+ cama_draw_timer
200
201
  folder = cama_uploader_browser_files[:folders]
202
+ cama_draw_timer
201
203
  "#{current_site.id}/#{path}".gsub(/(\/){2,}/, "/").split("/").each do |k|
202
204
  if k.present?
203
205
  begin
@@ -208,6 +210,7 @@ module CamaleonCms::UploaderHelper
208
210
  end
209
211
  end
210
212
  end
213
+ cama_draw_timer
211
214
  res || {folders: {}, files: []}
212
215
  end
213
216
 
@@ -1,3 +1,3 @@
1
1
  module CamaleonCms
2
- VERSION = "2.0.2"
2
+ VERSION = "2.0.3"
3
3
  end
@@ -9,6 +9,7 @@ module CamaleonCms
9
9
  def create_initializer_file
10
10
  copy_file "system.json", "config/system.json"
11
11
  copy_file "plugin_routes.rb", "lib/plugin_routes.rb"
12
+ Dir.mkdir Rails.root.join("app", "apps").to_s unless Dir.exist?(Rails.root.join("app", "apps").to_s)
12
13
  directory("apps", "app/apps")
13
14
  append_to_file 'Gemfile' do
14
15
  "\n\n#################### Camaleon CMS include all gems for plugins and themes #################### \nrequire './lib/plugin_routes' \ninstance_eval(PluginRoutes.draw_gems)"
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: 2.0.2
4
+ version: 2.0.3
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-12-01 00:00:00.000000000 Z
11
+ date: 2015-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt
@@ -878,8 +878,9 @@ requirements:
878
878
  - ruby >= 1.9.3
879
879
  - imagemagick
880
880
  rubyforge_project:
881
- rubygems_version: 2.4.6
881
+ rubygems_version: 2.4.5.1
882
882
  signing_key:
883
883
  specification_version: 4
884
884
  summary: Camaleon is a cms for Ruby on Rails 4 as an alternative to wordpress.
885
885
  test_files: []
886
+ has_rdoc: