spree_cms 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -1
- data/app/controllers/admin/pages_controller.rb +8 -3
- data/app/controllers/admin/posts_controller.rb +8 -3
- data/app/views/admin/cms_settings/edit.html.erb +17 -1
- data/app/views/admin/pages/_form.html.erb +6 -6
- data/app/views/admin/pages/edit.html.erb +1 -1
- data/app/views/admin/pages/index.html.erb +11 -11
- data/app/views/admin/pages/new.html.erb +4 -4
- data/app/views/admin/posts/_form.html.erb +8 -8
- data/app/views/admin/posts/_sub_menu.html.erb +1 -1
- data/app/views/admin/posts/edit.html.erb +3 -3
- data/app/views/admin/posts/index.html.erb +12 -12
- data/app/views/admin/posts/new.html.erb +6 -6
- data/app/views/pages/show.html.erb +2 -2
- data/app/views/posts/_post.html.erb +3 -3
- data/app/views/posts/index.html.erb +1 -1
- data/app/views/posts/show.html.erb +1 -1
- data/app/views/shared/_cms_content_for.html.erb +3 -3
- data/app/views/shared/_recent_articles.html.erb +1 -1
- data/config/locales/en.yml +5 -0
- data/config/routes.rb +10 -0
- data/lib/generators/spree_cms/install/install_generator.rb +16 -12
- data/lib/generators/spree_cms/install/templates/config/disqus_config.yml +18 -0
- data/lib/generators/spree_cms/install/templates/public/stylesheets/sass/cms.css +53 -0
- data/lib/spree_cms.rb +21 -6
- data/lib/spree_cms/version.rb +1 -1
- data/pkg/spree_cms-0.0.3.gem +0 -0
- metadata +7 -23
data/Gemfile
CHANGED
@@ -34,10 +34,15 @@ class Admin::PagesController < Admin::BaseController
|
|
34
34
|
# base_scope = base_scope.not_deleted
|
35
35
|
#end
|
36
36
|
|
37
|
-
@search = Page.
|
38
|
-
@search.order ||= "ascend_by_title"
|
37
|
+
@search = Page.searchlogic(params[:search])
|
39
38
|
|
40
|
-
@
|
39
|
+
# @search = Post.search(params[:search])
|
40
|
+
# @search.order ||= "ascend_by_title"
|
41
|
+
|
42
|
+
@collection = @search.do_search.paginate(
|
43
|
+
:per_page => (Spree::Config[:per_page]||50),
|
44
|
+
:page => params[:page]
|
45
|
+
)
|
41
46
|
else
|
42
47
|
@collection = Page.title_contains(params[:q]).all(:include => includes, :limit => 10)
|
43
48
|
@collection.uniq!
|
@@ -33,11 +33,16 @@ class Admin::PostsController < Admin::BaseController
|
|
33
33
|
#if params[:search].nil? || params[:search][:deleted_at_not_null].blank?
|
34
34
|
# base_scope = base_scope.not_deleted
|
35
35
|
#end
|
36
|
+
|
37
|
+
@search = Post.searchlogic(params[:search])
|
36
38
|
|
37
|
-
@search = Post.search(params[:search])
|
38
|
-
@search.order ||= "ascend_by_title"
|
39
|
+
# @search = Post.search(params[:search])
|
40
|
+
# @search.order ||= "ascend_by_title"
|
39
41
|
|
40
|
-
@collection = @search.paginate(
|
42
|
+
@collection = @search.do_search.paginate(
|
43
|
+
:per_page => (Spree::Config[:per_page]||50),
|
44
|
+
:page => params[:page]
|
45
|
+
)
|
41
46
|
else
|
42
47
|
@collection = Post.title_contains(params[:q]).all(:include => includes, :limit => 10)
|
43
48
|
@collection.uniq!
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<h1><%= t('cms.settings') %></h1>
|
4
4
|
|
5
|
-
|
5
|
+
<%= form_tag(admin_cms_settings_path, :method => :put) do -%>
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -10,6 +10,22 @@
|
|
10
10
|
<label><%= t('cms.posts_per_page') %></label>
|
11
11
|
<%= text_field_tag('preferences[cms_posts_per_page]', Spree::Config[:cms_posts_per_page]) %>
|
12
12
|
</p>
|
13
|
+
|
14
|
+
<!-- <p>
|
15
|
+
<label><%= t("cms.disqus.account") %></label>
|
16
|
+
<%= text_field_tag('preferences[cms_disqus_account]', Spree::Config[:cms_disqus_account]) %>
|
17
|
+
</p>
|
18
|
+
|
19
|
+
<p>
|
20
|
+
<label><%= t("cms.disqus.api_key") %></label>
|
21
|
+
<%= text_field_tag('preferences[cms_disqus_api_key]', Spree::Config[:cms_disqus_api_key]) %>
|
22
|
+
</p>
|
23
|
+
|
24
|
+
<p>
|
25
|
+
<label><%= t("cms.disqus.developer") %></label>
|
26
|
+
<%= text_field_tag('preferences[cms_disqus_developer]', Spree::Config[:cms_disqus_developer]) %>
|
27
|
+
</p> -->
|
28
|
+
|
13
29
|
<p>
|
14
30
|
<label><%= t('cms.posts_recent') %></label>
|
15
31
|
<%= text_field_tag('preferences[cms_posts_recent]', Spree::Config[:cms_posts_recent])%>
|
@@ -1,20 +1,20 @@
|
|
1
1
|
<div class="yui-gc">
|
2
2
|
<div class="yui-u first">
|
3
3
|
<%- locals = {:f => f} -%>
|
4
|
-
|
5
|
-
|
4
|
+
<%= hook :admin_page_form_left, locals do %>
|
5
|
+
<%= f.field_container :title do %>
|
6
6
|
<%= f.label :title, t("cms.title") %> <span class="required">*</span><br />
|
7
7
|
<%= f.text_field :title, :class => 'fullwidth title' %>
|
8
8
|
<%= f.error_message_on :title %>
|
9
9
|
<% end %>
|
10
10
|
|
11
|
-
|
11
|
+
<%= f.field_container :permalink do %>
|
12
12
|
<%= f.label :permalink, t("cms.permalink") %> <span class="required">*</span><br />
|
13
13
|
<%= f.text_field :permalink, :class => 'fullwidth title' %>
|
14
14
|
<%= f.error_message_on :permalink %>
|
15
15
|
<% end %>
|
16
16
|
|
17
|
-
|
17
|
+
<%= f.field_container :body_raw do %>
|
18
18
|
<%= f.label :body_raw, t("cms.body")%><br />
|
19
19
|
<%= f.text_area :body_raw, {:cols => 60, :rows => 4, :class => 'fullwidth'} %>
|
20
20
|
<%= f.error_message_on :body_raw %>
|
@@ -22,7 +22,7 @@
|
|
22
22
|
<% end %>
|
23
23
|
</div>
|
24
24
|
<div class="yui-u">
|
25
|
-
|
25
|
+
<%= hook :admin_page_form_right, locals do %>
|
26
26
|
|
27
27
|
<p>
|
28
28
|
<%= f.label :is_active, t("cms.status")%><br />
|
@@ -32,7 +32,7 @@
|
|
32
32
|
<%= f.error_message_on :is_active%>
|
33
33
|
</p>
|
34
34
|
<h2><%= t("metadata") %></h2>
|
35
|
-
|
35
|
+
<%= hook :admin_page_form_meta, locals do %>
|
36
36
|
<p>
|
37
37
|
<%= f.label :meta_keywords, t("cms.meta_keywords")%><br />
|
38
38
|
<%= f.text_field :meta_keywords, :class => 'fullwidth' %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<h1><%= t("cms.editing_page") + " “#{@page.title}”" %></h1>
|
2
2
|
|
3
|
-
|
3
|
+
<%= form_for(@page, admin_post_path(@page), :html => { :method => :put, :multipart => true }) do |f| %>
|
4
4
|
<%= render :partial => 'form', :locals => {:f => f} %>
|
5
5
|
<%= render :partial => 'admin/shared/edit_resource_links' %>
|
6
6
|
<% end %>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<div class='toolbar'>
|
2
2
|
<ul class='actions'>
|
3
3
|
<li id="new_ot_link">
|
4
|
-
<%=
|
5
|
-
{:
|
6
|
-
:
|
7
|
-
|
4
|
+
<%= button_link_to t("cms.new_page"), new_object_url,
|
5
|
+
{:remote => true,
|
6
|
+
:icon => 'add',
|
7
|
+
'data-update' => 'new-page'} %>
|
8
8
|
</li>
|
9
9
|
</ul>
|
10
10
|
<br class='clear' />
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
<table class="index">
|
20
20
|
<tr>
|
21
|
-
|
21
|
+
<%= hook :admin_pages_index_headers do %>
|
22
22
|
<th><%= order @search, :by => :title, :as => t("cms.title") %></th>
|
23
23
|
<th><%= order @search, :by => :date, :as => t("cms.date") %></th>
|
24
24
|
<% end %>
|
@@ -30,12 +30,12 @@
|
|
30
30
|
<% @collection.each do |page| %>
|
31
31
|
<%- locals = {:page => page} -%>
|
32
32
|
<tr>
|
33
|
-
|
33
|
+
<%= hook :admin_pages_index_rows, locals do %>
|
34
34
|
<td><%= link_to h(page.title), [:edit,:admin,page] %> (<%= page.is_active == 1 ? t("cms.published") : t("cms.draft") %>) </td>
|
35
35
|
<td><%= (page.published_at.blank? ? page.updated_at : page.published_at).strftime("%B %d, %Y at %I:%M%p") %></td>
|
36
36
|
<% end %>
|
37
37
|
<td class="actions">
|
38
|
-
|
38
|
+
<%= hook :admin_pages_index_row_actions, locals do %>
|
39
39
|
<%= link_to_edit page %>
|
40
40
|
|
41
41
|
<%= link_to_delete page %>
|
@@ -46,14 +46,14 @@
|
|
46
46
|
</table>
|
47
47
|
<%= will_paginate(:previous_label => "« #{t('previous')}", :next_label => "#{t('next')} »") %>
|
48
48
|
|
49
|
-
|
49
|
+
<%= content_for :sidebar do %>
|
50
50
|
|
51
|
-
|
51
|
+
<%= form_for @search do |f| %>
|
52
52
|
<div class="box">
|
53
53
|
<h3><%= t(:search) %></h3>
|
54
54
|
|
55
55
|
<%- locals = {:f => f} -%>
|
56
|
-
|
56
|
+
<%= hook :admin_pages_index_search, locals do %>
|
57
57
|
<p>
|
58
58
|
<label><%= t("cms.title") %></label><br />
|
59
59
|
<%= f.text_field :title_contains, :size => 15 %>
|
@@ -79,7 +79,7 @@
|
|
79
79
|
</p>
|
80
80
|
<% end %>
|
81
81
|
|
82
|
-
|
82
|
+
<%= hook :admin_pages_index_search_buttons, locals do %>
|
83
83
|
<p class="form-buttons">
|
84
84
|
<%= button t("search") %>
|
85
85
|
</p>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
<%=
|
1
|
+
<%= render "shared/error_messages", :target => @page %>
|
2
2
|
|
3
|
-
|
3
|
+
<%= form_for(:page, :url => collection_url, :html => { :multipart => true }) do |f| %>
|
4
4
|
<fieldset>
|
5
5
|
|
6
|
-
|
6
|
+
<%= f.field_container :title do %>
|
7
7
|
<%= f.label :title, t("cms.title") %> <span class="required">*</span><br />
|
8
8
|
<%= f.text_field :title, :class => 'fullwidth title' %>
|
9
9
|
<%= f.error_message_on :title %>
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<div class="yui-gb">
|
13
13
|
<div class="yui-u first">
|
14
14
|
|
15
|
-
|
15
|
+
<%= f.field_container :body_raw do %>
|
16
16
|
<%= f.label :body_raw, t("cms.body")%> <span class="required">*</span><br />
|
17
17
|
<%= f.text_area :body_raw, {:cols => 120, :rows => 4, :class => 'fullwidth'} %>
|
18
18
|
<%= f.error_message_on :body_raw %>
|
@@ -1,26 +1,26 @@
|
|
1
1
|
<div class="yui-gc">
|
2
2
|
<div class="yui-u first">
|
3
3
|
<%- locals = {:f => f} -%>
|
4
|
-
|
5
|
-
|
4
|
+
<%= hook :admin_post_form_left, locals do %>
|
5
|
+
<%= f.field_container :title do %>
|
6
6
|
<%= f.label :title, t("cms.title") %> <span class="required">*</span><br />
|
7
7
|
<%= f.text_field :title, :class => 'fullwidth title' %>
|
8
8
|
<%= f.error_message_on :title %>
|
9
9
|
<% end %>
|
10
10
|
|
11
|
-
|
11
|
+
<%= f.field_container :permalink do %>
|
12
12
|
<%= f.label :permalink, t("cms.permalink") %> <span class="required">*</span><br />
|
13
13
|
<%= f.text_field :permalink, :class => 'fullwidth title' %>
|
14
14
|
<%= f.error_message_on :permalink %>
|
15
15
|
<% end %>
|
16
16
|
|
17
|
-
|
17
|
+
<%= f.field_container :excerpt do %>
|
18
18
|
<%= f.label :excerpt, t("cms.excerpt")%><br />
|
19
19
|
<%= f.text_area :excerpt, {:cols => 120, :rows => 3, :class => 'fullwidth'} %>
|
20
20
|
<%= f.error_message_on :excerpt %>
|
21
21
|
<% end %>
|
22
22
|
|
23
|
-
|
23
|
+
<%= f.field_container :body_raw do %>
|
24
24
|
<%= f.label :body_raw, t("cms.body")%> <span class="required">*</span><br />
|
25
25
|
<%= f.text_area :body_raw, {:cols => 120, :rows => 4, :class => 'fullwidth'} %>
|
26
26
|
<%= f.error_message_on :body_raw %>
|
@@ -28,11 +28,11 @@
|
|
28
28
|
<% end %>
|
29
29
|
</div>
|
30
30
|
<div class="yui-u">
|
31
|
-
|
31
|
+
<%= hook :admin_post_form_right, locals do %>
|
32
32
|
|
33
33
|
<p>
|
34
34
|
<%= f.label :user_id, t("cms.author")%><br />
|
35
|
-
<%= f.collection_select :user_id, User.roles_name_equals("
|
35
|
+
<%= f.collection_select :user_id, User.roles_name_equals("admin"), :id, :display_name, {:prompt => t("cms.select_author")} %>
|
36
36
|
<%= f.error_message_on :user_id %>
|
37
37
|
</p>
|
38
38
|
|
@@ -51,7 +51,7 @@
|
|
51
51
|
</p>
|
52
52
|
|
53
53
|
<h2><%= t("cms.metadata") %></h2>
|
54
|
-
|
54
|
+
<%= hook :admin_page_form_meta, locals do %>
|
55
55
|
<p>
|
56
56
|
<%= f.label :meta_keywords, t("cms.meta_keywords")%><br />
|
57
57
|
<%= f.text_field :meta_keywords, :class => 'fullwidth' %>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<%= render :partial => 'sub_menu' %>
|
2
2
|
|
3
|
-
<h1><%= t("cms.editing_post") + " “#{@post.title}”" %></h1>
|
4
|
-
|
5
|
-
|
3
|
+
<h1><%= raw t("cms.editing_post") + " “#{@post.title}”" %></h1>
|
4
|
+
d
|
5
|
+
<%= form_for([:admin,@post], :html => { :method => :put, :multipart => true }) do |f| %>
|
6
6
|
<%= render :partial => 'form', :locals => {:f => f} %>
|
7
7
|
<%= render :partial => 'admin/shared/edit_resource_links' %>
|
8
8
|
<% end %>
|
@@ -3,10 +3,10 @@
|
|
3
3
|
<div class='toolbar'>
|
4
4
|
<ul class='actions'>
|
5
5
|
<li id="new_ot_link">
|
6
|
-
<%=
|
7
|
-
{:
|
8
|
-
|
9
|
-
:
|
6
|
+
<%= button_link_to t("cms.new_post"), new_object_url,
|
7
|
+
{:remote => true,
|
8
|
+
'data-update' => 'new-post',
|
9
|
+
:icon => 'add'} %>
|
10
10
|
</li>
|
11
11
|
</ul>
|
12
12
|
<br class='clear' />
|
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
<table class="index">
|
22
22
|
<tr>
|
23
|
-
|
23
|
+
<%= hook :admin_posts_index_headers do %>
|
24
24
|
<th><%= order @search, :by => :title, :as => t("cms.title") %></th>
|
25
25
|
<th><%= order @search, :by => :author, :as => t("cms.author") %></th>
|
26
26
|
<th><%= t("cms.tags") %></th>
|
@@ -34,13 +34,13 @@
|
|
34
34
|
<% @collection.each do |post| %>
|
35
35
|
<%- locals = {:post => post} -%>
|
36
36
|
<tr>
|
37
|
-
|
37
|
+
<%= hook :admin_posts_index_rows, locals do %>
|
38
38
|
<td><%= link_to h(post.title), [:edit,:admin,post] %> (<%= post.is_active == 1 ? t("cms.published") : t("cms.draft") %>) </td>
|
39
39
|
<td><%= link_to post.user.display_name, [:admin, post.user] %></td>
|
40
40
|
<td><%= post.tag_list %></td>
|
41
41
|
<td><%= (post.published_at.blank? ? post.updated_at : post.published_at).strftime("%B %d, %Y at %I:%M%p") %></td>
|
42
42
|
<td class="actions">
|
43
|
-
|
43
|
+
<%= hook :admin_pages_index_row_actions, locals do %>
|
44
44
|
<%= link_to_edit post %>
|
45
45
|
|
46
46
|
<%= link_to_delete post %>
|
@@ -53,14 +53,14 @@
|
|
53
53
|
|
54
54
|
<%= will_paginate(:previous_label => "« #{t('previous')}", :next_label => "#{t('next')} »") %>
|
55
55
|
|
56
|
-
|
56
|
+
<%= content_for :sidebar do %>
|
57
57
|
|
58
|
-
|
58
|
+
<%= form_for @search do |f| %>
|
59
59
|
<div class="box">
|
60
60
|
<h3><%= t(:search) %></h3>
|
61
61
|
|
62
62
|
<%- locals = {:f => f} -%>
|
63
|
-
|
63
|
+
<%= hook :admin_posts_index_search, locals do %>
|
64
64
|
<p>
|
65
65
|
<label><%= t("cms.title") %></label><br />
|
66
66
|
<%= f.text_field :title_contains, :size => 15 %>
|
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
<p>
|
82
82
|
<label><%= t("cms.author") %></label><br />
|
83
|
-
<%=
|
83
|
+
<%= collection_select( :user, :user_id, User.roles_name_equals("admin"), :id, :display_name) %></p>
|
84
84
|
</p>
|
85
85
|
<p>
|
86
86
|
<%= f.check_box :is_active, {:style => "vertical-align:middle;"}, "1", "" %>
|
@@ -90,7 +90,7 @@
|
|
90
90
|
</p>
|
91
91
|
<% end %>
|
92
92
|
|
93
|
-
|
93
|
+
<%= hook :admin_posts_index_search_buttons, locals do %>
|
94
94
|
<p class="form-buttons">
|
95
95
|
<%= button t("search") %>
|
96
96
|
</p>
|
@@ -1,11 +1,11 @@
|
|
1
|
-
<%= render :
|
1
|
+
<%= render "shared/error_messages", :target => @post %>
|
2
2
|
|
3
|
-
<%=
|
3
|
+
<%= render :partial => 'sub_menu' %>
|
4
4
|
|
5
|
-
|
5
|
+
<%= form_for(:post, :url => collection_url, :html => { :multipart => true }) do |f| %>
|
6
6
|
<fieldset>
|
7
7
|
|
8
|
-
|
8
|
+
<%= f.field_container :title do %>
|
9
9
|
<%= f.label :title, t("cms.title") %> <span class="required">*</span><br />
|
10
10
|
<%= f.text_field :title, :class => 'fullwidth title' %>
|
11
11
|
<%= f.error_message_on :title %>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
<div class="yui-gb">
|
15
15
|
<div class="yui-u first">
|
16
16
|
|
17
|
-
|
17
|
+
<%= f.field_container :body_raw do %>
|
18
18
|
<%= f.label :body_raw, t("cms.body")%> <span class="required">*</span><br />
|
19
19
|
<%= f.text_area :body_raw, {:cols => 120, :rows => 4, :class => 'fullwidth'} %>
|
20
20
|
<%= f.error_message_on :body_raw %>
|
@@ -29,7 +29,7 @@
|
|
29
29
|
<%= f.collection_select :user_id, User.all, :id, :display_name, {:include_blank => false} %>
|
30
30
|
</p>
|
31
31
|
|
32
|
-
|
32
|
+
<%= f.field_container :permalink do %>
|
33
33
|
<%= f.label :permalink, t("cms.permalink") %><br />
|
34
34
|
<%= f.text_field :permalink, :class => 'fullwidth title' %>
|
35
35
|
<%= f.error_message_on :permalink %>
|
@@ -5,9 +5,9 @@
|
|
5
5
|
<div class="post-meta">
|
6
6
|
<% unless post.user.display_name.blank? %>By <%= post.user.display_name %> <% end %> - <%= link_to "comments", post_path(post, :anchor => "disqus_thread") %>
|
7
7
|
</div>
|
8
|
-
<div class="post-content"><%= post.body %></div>
|
9
|
-
<div class="post-meta"><% unless post.tags.empty? %><%= t("cms.tags") %>: <%= linked_tag_list(post.tags) %><% end %></div>
|
8
|
+
<div class="post-content"><%= raw post.body %></div>
|
9
|
+
<div class="post-meta"><% unless post.tags.empty? %><%= t("cms.tags") %>: <%= raw linked_tag_list(post.tags) %><% end %></div>
|
10
10
|
</div>
|
11
11
|
|
12
12
|
|
13
|
-
<%= disqus_comment_counts %>
|
13
|
+
<%= raw disqus_comment_counts %>
|
@@ -1,7 +1,7 @@
|
|
1
|
-
|
2
|
-
<%= stylesheet_tags '
|
1
|
+
<%= content_for :head do %>
|
2
|
+
<%= stylesheet_tags 'sass/cms' %>
|
3
3
|
<% end %>
|
4
4
|
|
5
|
-
|
5
|
+
<%= content_for :sidebar do %>
|
6
6
|
<%= render :partial => 'shared/recent_articles'%>
|
7
7
|
<% end %>
|
@@ -3,5 +3,5 @@
|
|
3
3
|
<% post_link_list().each do |link| -%>
|
4
4
|
<li><%= link_to link.name, link.url %></li>
|
5
5
|
<% end -%>
|
6
|
-
<li
|
6
|
+
<li><%= link_to posts_path(:format => 'rss') do -%><%= image_tag('icons/feed.gif', :alt => "#{t("posts")} RSS", :size => '16x16') %> RSS Feed <%- end -%></li>
|
7
7
|
</ul>
|
data/config/locales/en.yml
CHANGED
@@ -4,6 +4,7 @@ en:
|
|
4
4
|
posts: Posts
|
5
5
|
page: Page
|
6
6
|
pages: Pages
|
7
|
+
recent_posts: Recent Posts
|
7
8
|
cms:
|
8
9
|
date: Date
|
9
10
|
published_date_range: Published Date Range
|
@@ -26,6 +27,10 @@ en:
|
|
26
27
|
author: Author
|
27
28
|
publish_post: Publish Post
|
28
29
|
comment_status: Comment Status
|
30
|
+
status: Status
|
31
|
+
metadata: Metadata
|
32
|
+
meta_keywords: Meta Keywords
|
33
|
+
meta_description: Meta Description
|
29
34
|
tags: Tags
|
30
35
|
tags_hint: Enter tags separated by a comma
|
31
36
|
settings: Blog Settings
|
data/config/routes.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
resources :posts
|
3
|
+
match "#{Spree::Config[:cms_permalink]}/tags/:tag_name" => "posts#tags", :as => "tag_posts"
|
4
|
+
resources :pages
|
5
|
+
namespace :admin do
|
6
|
+
resource :cms_settings
|
7
|
+
resources :posts
|
8
|
+
resources :pages
|
9
|
+
end
|
10
|
+
end
|
@@ -17,22 +17,26 @@ module SpreeCms
|
|
17
17
|
directory "public", "public"
|
18
18
|
end
|
19
19
|
|
20
|
+
def copy_config_files
|
21
|
+
copy_file "config/disqus_config.yml", "config/disqus_config.yml"
|
22
|
+
end
|
23
|
+
|
20
24
|
def generate_migrations
|
21
|
-
migration_template "db/migrate/create_pages.rb", "db/migrate/create_pages.rb"
|
22
|
-
migration_template "db/migrate/create_posts.rb", "db/migrate/create_posts.rb"
|
23
|
-
migration_template "db/migrate/add_display_name_to_user.rb", "db/migrate/add_display_name_to_user.rb"
|
24
|
-
migration_template "db/migrate/is_taggable_migration.rb", "db/migrate/is_taggable_migration.rb"
|
25
|
+
migration_template "db/migrate/create_pages.rb", "db/migrate/create_pages.rb" rescue true
|
26
|
+
migration_template "db/migrate/create_posts.rb", "db/migrate/create_posts.rb" rescue true
|
27
|
+
migration_template "db/migrate/add_display_name_to_user.rb", "db/migrate/add_display_name_to_user.rb" rescue true
|
28
|
+
migration_template "db/migrate/is_taggable_migration.rb", "db/migrate/is_taggable_migration.rb" rescue true
|
25
29
|
end
|
26
30
|
|
27
31
|
def generate_routes
|
28
|
-
route('resources :posts')
|
29
|
-
route('match "'+Spree::Config[:cms_permalink]+'/tags/:tag_name" => "posts#tags", :as => "tag_posts"')
|
30
|
-
route('resources :pages')
|
31
|
-
route('namespace :admin do
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end')
|
32
|
+
# route('resources :posts')
|
33
|
+
# route('match "'+Spree::Config[:cms_permalink]+'/tags/:tag_name" => "posts#tags", :as => "tag_posts"')
|
34
|
+
# route('resources :pages')
|
35
|
+
# route('namespace :admin do
|
36
|
+
# resource :cms_settings
|
37
|
+
# resources :posts
|
38
|
+
# resources :pagess
|
39
|
+
# end')
|
36
40
|
end
|
37
41
|
|
38
42
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
.posts .post {
|
2
|
+
border-bottom: solid 1px #cccccc; }
|
3
|
+
|
4
|
+
.post {
|
5
|
+
padding-bottom: 10px;
|
6
|
+
margin-bottom: 20px;
|
7
|
+
font-size: 14px; }
|
8
|
+
.post .post-content p {
|
9
|
+
padding: 0 0 0.5em 0;
|
10
|
+
margin: 0.5em 0 0; }
|
11
|
+
.post h2.post-title {
|
12
|
+
margin: 0;
|
13
|
+
line-height: 1em;
|
14
|
+
text-transform: none; }
|
15
|
+
.post h2.post-title padding {
|
16
|
+
bottom: 10px; }
|
17
|
+
.post h2.post-title a,
|
18
|
+
.post h2.post-title a:visited {
|
19
|
+
color: #333333;
|
20
|
+
text-decoration: none;
|
21
|
+
font-weight: normal; }
|
22
|
+
.post h2.post-title a:hover {
|
23
|
+
color: #333333;
|
24
|
+
text-decoration: underline; }
|
25
|
+
.post .post-date {
|
26
|
+
margin: 0 0 0.5em 0;
|
27
|
+
font-size: 11px;
|
28
|
+
padding: 0;
|
29
|
+
color: #a5a5a5; }
|
30
|
+
.post .post-date a {
|
31
|
+
text-decoration: none; }
|
32
|
+
|
33
|
+
.post .post-meta {
|
34
|
+
margin: 3px 0 1.5em 0;
|
35
|
+
font-size: 12px; }
|
36
|
+
.post .post-meta a {
|
37
|
+
color: #999999;
|
38
|
+
font-weight: normal; }
|
39
|
+
|
40
|
+
#comments {
|
41
|
+
border-top: solid 5px #999999;
|
42
|
+
padding-top: 10px; }
|
43
|
+
|
44
|
+
.comment {
|
45
|
+
padding-top: 5px;
|
46
|
+
margin-bottom: 20px;
|
47
|
+
border-top: solid 1px #cccccc; }
|
48
|
+
.comment p {
|
49
|
+
padding: 5px 0; }
|
50
|
+
.comment .meta span {
|
51
|
+
padding-left: 5px;
|
52
|
+
font-size: 11px;
|
53
|
+
color: #999999; }
|
data/lib/spree_cms.rb
CHANGED
@@ -1,21 +1,33 @@
|
|
1
1
|
require 'spree_core'
|
2
|
+
require 'disqus'
|
3
|
+
require 'rails'
|
2
4
|
require 'spree_cms_hooks'
|
5
|
+
require 'is_taggable'
|
6
|
+
require 'RedCloth'
|
3
7
|
|
4
8
|
module SpreeCms
|
5
9
|
class Engine < Rails::Engine
|
6
|
-
|
7
10
|
config.autoload_paths += %W(#{config.root}/lib)
|
8
11
|
|
9
12
|
initializer "cms" do
|
10
13
|
require 'extensions/string'
|
11
14
|
end
|
12
15
|
|
16
|
+
initializer 'load_disqus_config' do
|
17
|
+
if File.exists?("#{Rails.root}/config/disqus_config.yml")
|
18
|
+
raw_config = File.read("#{Rails.root}/config/disqus_config.yml")
|
19
|
+
DISQUS_CONFIG = YAML.load(raw_config)[Rails.env].symbolize_keys
|
20
|
+
else
|
21
|
+
DISQUS_CONFIG = {}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
13
25
|
def self.activate
|
14
26
|
|
15
|
-
Disqus::defaults[:account] =
|
27
|
+
::Disqus::defaults[:account] = DISQUS_CONFIG[:account]
|
16
28
|
# Optional, only if you're using the API
|
17
|
-
Disqus::defaults[:api_key] =
|
18
|
-
Disqus::defaults[:developer] =
|
29
|
+
::Disqus::defaults[:api_key] = DISQUS_CONFIG[:api_key]
|
30
|
+
::Disqus::defaults[:developer] = DISQUS_CONFIG[:developer]
|
19
31
|
|
20
32
|
Spree::BaseController.class_eval do
|
21
33
|
helper CmsHelper
|
@@ -51,12 +63,15 @@ module SpreeCms
|
|
51
63
|
preference :cms_page_status_default, :integer, :default => 0
|
52
64
|
preference :cms_page_comment_default, :integer, :default => 0
|
53
65
|
preference :cms_rss_description, :string, :default => 'description about your main post rss.'
|
66
|
+
preference :cms_disqus_account
|
67
|
+
preference :cms_disqus_api_key
|
68
|
+
preference :cms_disqus_developer
|
54
69
|
end
|
55
70
|
|
56
71
|
User.class_eval do
|
57
|
-
|
72
|
+
has_many :posts
|
58
73
|
|
59
|
-
|
74
|
+
attr_accessible :display_name
|
60
75
|
end
|
61
76
|
|
62
77
|
end
|
data/lib/spree_cms/version.rb
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
version: 0.0.3
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.4
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Gunner Technology, Cody Swann
|
@@ -25,10 +21,6 @@ dependencies:
|
|
25
21
|
requirements:
|
26
22
|
- - ~>
|
27
23
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 0
|
30
|
-
- 1
|
31
|
-
- 0
|
32
24
|
version: 0.1.0
|
33
25
|
type: :runtime
|
34
26
|
version_requirements: *id001
|
@@ -40,10 +32,6 @@ dependencies:
|
|
40
32
|
requirements:
|
41
33
|
- - ~>
|
42
34
|
- !ruby/object:Gem::Version
|
43
|
-
segments:
|
44
|
-
- 4
|
45
|
-
- 2
|
46
|
-
- 7
|
47
35
|
version: 4.2.7
|
48
36
|
type: :runtime
|
49
37
|
version_requirements: *id002
|
@@ -55,10 +43,6 @@ dependencies:
|
|
55
43
|
requirements:
|
56
44
|
- - ~>
|
57
45
|
- !ruby/object:Gem::Version
|
58
|
-
segments:
|
59
|
-
- 1
|
60
|
-
- 0
|
61
|
-
- 4
|
62
46
|
version: 1.0.4
|
63
47
|
type: :runtime
|
64
48
|
version_requirements: *id003
|
@@ -105,18 +89,22 @@ files:
|
|
105
89
|
- app/views/shared/_recent_articles.html.erb
|
106
90
|
- app/views/shared/_store_menu.html.erb
|
107
91
|
- config/locales/en.yml
|
92
|
+
- config/routes.rb
|
108
93
|
- lib/extensions/string.rb
|
109
94
|
- lib/generators/spree_cms/USAGE
|
110
95
|
- lib/generators/spree_cms/install/install_generator.rb
|
96
|
+
- lib/generators/spree_cms/install/templates/config/disqus_config.yml
|
111
97
|
- lib/generators/spree_cms/install/templates/db/migrate/add_display_name_to_user.rb
|
112
98
|
- lib/generators/spree_cms/install/templates/db/migrate/create_pages.rb
|
113
99
|
- lib/generators/spree_cms/install/templates/db/migrate/create_posts.rb
|
114
100
|
- lib/generators/spree_cms/install/templates/db/migrate/is_taggable_migration.rb
|
115
101
|
- lib/generators/spree_cms/install/templates/public/images/icons/feed.gif
|
102
|
+
- lib/generators/spree_cms/install/templates/public/stylesheets/sass/cms.css
|
116
103
|
- lib/generators/spree_cms/install/templates/public/stylesheets/sass/cms.sass
|
117
104
|
- lib/spree_cms.rb
|
118
105
|
- lib/spree_cms/version.rb
|
119
106
|
- lib/spree_cms_hooks.rb
|
107
|
+
- pkg/spree_cms-0.0.3.gem
|
120
108
|
- spree_cms.gemspec
|
121
109
|
has_rdoc: true
|
122
110
|
homepage: ""
|
@@ -132,21 +120,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
132
120
|
requirements:
|
133
121
|
- - ">="
|
134
122
|
- !ruby/object:Gem::Version
|
135
|
-
segments:
|
136
|
-
- 0
|
137
123
|
version: "0"
|
138
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
125
|
none: false
|
140
126
|
requirements:
|
141
127
|
- - ">="
|
142
128
|
- !ruby/object:Gem::Version
|
143
|
-
segments:
|
144
|
-
- 0
|
145
129
|
version: "0"
|
146
130
|
requirements: []
|
147
131
|
|
148
132
|
rubyforge_project: spree_cms
|
149
|
-
rubygems_version: 1.
|
133
|
+
rubygems_version: 1.6.0
|
150
134
|
signing_key:
|
151
135
|
specification_version: 3
|
152
136
|
summary: Adds a simple CMS to your Spree Store with Disqus commenting
|