spree_static_content 0.70.3 → 1.0.1
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.
- data/README.md +6 -2
- data/app/controllers/spree/admin/pages_controller.rb +16 -0
- data/app/controllers/{static_content_controller.rb → spree/static_content_controller.rb} +10 -4
- data/app/models/{page.rb → spree/page.rb} +10 -10
- data/app/overrides/pages_in_footer.rb +4 -0
- data/app/overrides/pages_in_header.rb +4 -0
- data/app/overrides/pages_in_sidebar.rb +4 -0
- data/app/overrides/static_content_admin_tab.rb +1 -1
- data/app/views/spree/admin/pages/_form.html.erb +76 -0
- data/app/views/spree/admin/pages/edit.html.erb +7 -0
- data/app/views/{admin → spree/admin}/pages/index.html.erb +2 -2
- data/app/views/spree/admin/pages/new.html.erb +7 -0
- data/app/views/spree/static_content/_static_content_footer.html.erb +3 -0
- data/app/views/spree/static_content/_static_content_header.html.erb +1 -0
- data/app/views/spree/static_content/_static_content_list.html.erb +1 -0
- data/app/views/spree/static_content/_static_content_sidebar.html.erb +3 -0
- data/app/views/spree/static_content/show.html.erb +22 -0
- data/lib/generators/spree_static_content/install_generator.rb +38 -17
- data/lib/spree_static_content.rb +2 -21
- data/lib/spree_static_content/engine.rb +16 -0
- metadata +80 -28
- data/app/controllers/admin/pages_controller.rb +0 -16
- data/app/controllers/spree/base_controller_decorator.rb +0 -33
- data/app/views/admin/pages/_form.html.erb +0 -15
- data/app/views/admin/pages/edit.html.erb +0 -10
- data/app/views/admin/pages/new.html.erb +0 -10
- data/app/views/static_content/show.html.erb +0 -14
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Spree Static Content
|
2
2
|
|
3
|
+
[](http://travis-ci.org/spree/spree_static_content)
|
4
|
+
|
3
5
|
Good, clean content management of pages for Spree. You can use this to:
|
4
6
|
|
5
7
|
- Add and manage static pages such as an 'About' page.
|
@@ -16,9 +18,11 @@ See the wiki for some more documentation on how you can use this extension.
|
|
16
18
|
|
17
19
|
## Basic Installation
|
18
20
|
|
21
|
+
**For Spree 0.70.x**
|
22
|
+
|
19
23
|
1. Add the following to your Gemfile
|
20
24
|
<pre>
|
21
|
-
gem 'spree_static_content', :git => 'github.com/spree/spree_static_content'
|
25
|
+
gem 'spree_static_content', :git => 'http://github.com/spree/spree_static_content', :ref => '1861f4cd08c0ffa9940f0c81e69ea29b4541dbbd'
|
22
26
|
</pre>
|
23
27
|
2. Run `bundle install`
|
24
28
|
3. To copy and apply migrations run: `rails g spree_static_content:install`
|
@@ -42,4 +46,4 @@ You can also run `bundle exec rake test_app` and then to run the specs run `bund
|
|
42
46
|
<pre>
|
43
47
|
git push -u origin my-feature-branch
|
44
48
|
</pre>
|
45
|
-
4. Send a pull request from your feature branch in the forked repository on github.
|
49
|
+
4. Send a pull request from your feature branch in the forked repository on github.
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Spree::Admin::PagesController < Spree::Admin::ResourceController
|
2
|
+
update.after :expire_cache
|
3
|
+
|
4
|
+
def new
|
5
|
+
@page = @object
|
6
|
+
end
|
7
|
+
|
8
|
+
def edit
|
9
|
+
@page = @object
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
def expire_cache
|
14
|
+
expire_page :controller => '/spree/static_content', :action => 'show', :path => @object.slug
|
15
|
+
end
|
16
|
+
end
|
@@ -1,23 +1,29 @@
|
|
1
|
-
class StaticContentController < Spree::BaseController
|
1
|
+
class Spree::StaticContentController < Spree::BaseController
|
2
2
|
caches_action :show
|
3
|
+
layout :determine_layout
|
3
4
|
|
4
5
|
def show
|
5
6
|
path = case params[:path]
|
6
7
|
when Array
|
7
8
|
'/' + params[:path].join("/")
|
8
9
|
when String
|
9
|
-
params[:path]
|
10
|
+
'/' + params[:path]
|
10
11
|
when nil
|
11
12
|
request.path
|
12
13
|
end
|
13
14
|
|
14
|
-
unless @page = Page.visible.find_by_slug(path)
|
15
|
+
unless @page = Spree::Page.visible.find_by_slug(path.gsub('//','/'))
|
15
16
|
render_404
|
16
17
|
end
|
17
18
|
end
|
18
|
-
|
19
|
+
|
19
20
|
private
|
20
21
|
|
22
|
+
def determine_layout
|
23
|
+
return @page.layout if @page and @page.layout.present?
|
24
|
+
'spree/layouts/spree_application'
|
25
|
+
end
|
26
|
+
|
21
27
|
def accurate_title
|
22
28
|
@page ? (@page.meta_title ? @page.meta_title : @page.title) : nil
|
23
29
|
end
|
@@ -1,20 +1,20 @@
|
|
1
|
-
class Page < ActiveRecord::Base
|
1
|
+
class Spree::Page < ActiveRecord::Base
|
2
2
|
default_scope :order => "position ASC"
|
3
3
|
|
4
4
|
validates_presence_of :title
|
5
5
|
validates_presence_of [:slug, :body], :if => :not_using_foreign_link?
|
6
|
-
|
6
|
+
|
7
7
|
scope :visible, where(:visible => true)
|
8
8
|
scope :header_links, where(:show_in_header => true).visible
|
9
9
|
scope :footer_links, where(:show_in_footer => true).visible
|
10
10
|
scope :sidebar_links, where(:show_in_sidebar => true).visible
|
11
|
-
|
12
|
-
|
11
|
+
|
12
|
+
|
13
13
|
before_save :update_positions_and_slug
|
14
14
|
|
15
15
|
def initialize(*args)
|
16
16
|
super(*args)
|
17
|
-
last_page = Page.last
|
17
|
+
last_page = Spree::Page.last
|
18
18
|
self.position = last_page ? last_page.position + 1 : 0
|
19
19
|
end
|
20
20
|
|
@@ -26,11 +26,11 @@ private
|
|
26
26
|
|
27
27
|
def update_positions_and_slug
|
28
28
|
unless new_record?
|
29
|
-
return unless prev_position = Page.find(self.id).position
|
29
|
+
return unless prev_position = Spree::Page.find(self.id).position
|
30
30
|
if prev_position > self.position
|
31
|
-
Page.update_all("position = position + 1", ["? <= position AND position < ?", self.position, prev_position])
|
31
|
+
Spree::Page.update_all("position = position + 1", ["? <= position AND position < ?", self.position, prev_position])
|
32
32
|
elsif prev_position < self.position
|
33
|
-
Page.update_all("position = position - 1", ["? < position AND position <= ?", prev_position, self.position])
|
33
|
+
Spree::Page.update_all("position = position - 1", ["? < position AND position <= ?", prev_position, self.position])
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -40,7 +40,7 @@ private
|
|
40
40
|
end
|
41
41
|
return true
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
def not_using_foreign_link?
|
45
45
|
foreign_link.blank?
|
46
46
|
end
|
@@ -48,7 +48,7 @@ private
|
|
48
48
|
def slug_link
|
49
49
|
ensure_slash_prefix slug
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
def ensure_slash_prefix(str)
|
53
53
|
str.index('/') == 0 ? str : '/' + str
|
54
54
|
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
<div class="clearfix">
|
2
|
+
<div class="left">
|
3
|
+
<%= f.field_container :title do %>
|
4
|
+
<%= f.label :title, t(:title) %> <span class="required">*</span><br />
|
5
|
+
<%= f.text_field :title, :class => 'fullwidth title' %>
|
6
|
+
<%= f.error_message_on :title %>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<%= f.field_container :slug do %>
|
10
|
+
<%= f.label :slug, t(:slug) %> <span class="required">*</span><br />
|
11
|
+
<%= f.text_field :slug, :class => 'fullwidth title' %>
|
12
|
+
<%= f.error_message_on :slug %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<%= f.field_container :body do %>
|
16
|
+
<%= f.label :body, t(:body) %><br />
|
17
|
+
<%= f.text_area :body, {:class => 'fullwidth'} %>
|
18
|
+
<%= f.error_message_on :body %>
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
<%= f.field_container :meta_title do %>
|
22
|
+
<%= f.label :meta_title, t(:meta_title) %><br />
|
23
|
+
<%= f.text_field :meta_title, :class => 'fullwidth title' %>
|
24
|
+
<%= f.error_message_on :meta_title %>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<%= f.field_container :meta_keywords do %>
|
28
|
+
<%= f.label :meta_keywords, t(:meta_keywords) %><br />
|
29
|
+
<%= f.text_field :meta_keywords, :class => 'fullwidth title' %>
|
30
|
+
<%= f.error_message_on :meta_keywords %>
|
31
|
+
<% end %>
|
32
|
+
|
33
|
+
<%= f.field_container :meta_description do %>
|
34
|
+
<%= f.label :meta_description, t(:meta_description) %><br />
|
35
|
+
<%= f.text_field :meta_description, :class => 'fullwidth title' %>
|
36
|
+
<%= f.error_message_on :meta_description %>
|
37
|
+
<% end %>
|
38
|
+
|
39
|
+
</div>
|
40
|
+
<div class="right">
|
41
|
+
<%= f.field_container :layout do %>
|
42
|
+
<%= f.label :layout, t(:layout) %><br />
|
43
|
+
<%= f.text_field :layout, :class => 'fullwidth title' %>
|
44
|
+
<% end %>
|
45
|
+
|
46
|
+
<%= f.field_container :foreign_link do %>
|
47
|
+
<%= f.label :foreign_link, t(:foreign_link) %><br />
|
48
|
+
<%= f.text_field :foreign_link, :class => 'fullwidth title' %>
|
49
|
+
<% end %>
|
50
|
+
|
51
|
+
<%= f.field_container :position do %>
|
52
|
+
<%= f.label :position, t(:position) %><br />
|
53
|
+
<%= f.number_field :position, :min => 0 %>
|
54
|
+
<% end %>
|
55
|
+
|
56
|
+
<ul id="static_page_options">
|
57
|
+
<li>
|
58
|
+
<%= f.check_box :show_in_sidebar %>
|
59
|
+
<%= f.label :show_in_sidebar %>
|
60
|
+
</li>
|
61
|
+
<li>
|
62
|
+
<%= f.check_box :show_in_header %>
|
63
|
+
<%= f.label :show_in_header %>
|
64
|
+
</li>
|
65
|
+
<li>
|
66
|
+
<%= f.check_box :show_in_footer %>
|
67
|
+
<%= f.label :show_in_footer %>
|
68
|
+
</li>
|
69
|
+
<li>
|
70
|
+
<%= f.check_box :visible %>
|
71
|
+
<%= f.label :visible %>
|
72
|
+
</li>
|
73
|
+
</ul>
|
74
|
+
|
75
|
+
</div>
|
76
|
+
</div>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<h1><%= t("static_content.editing_page") %></h1>
|
2
|
+
<%= render "spree/shared/error_messages", :target => @page %>
|
3
|
+
|
4
|
+
<%= form_for [:admin, @page] do |f| %>
|
5
|
+
<%= render :partial => 'form', :locals => { :f => f } %>
|
6
|
+
<%= render :partial => 'spree/admin/shared/edit_resource_links' %>
|
7
|
+
<% end %>
|
@@ -11,9 +11,9 @@
|
|
11
11
|
|
12
12
|
<table class="index">
|
13
13
|
<tr>
|
14
|
-
<th><%= Page.human_attribute_name(:title) %></th>
|
14
|
+
<th><%= Spree::Page.human_attribute_name(:title) %></th>
|
15
15
|
<th><%= t("static_content.link") %></th>
|
16
|
-
<th><%= Page.human_attribute_name(:visible) %></th>
|
16
|
+
<th><%= Spree::Page.human_attribute_name(:visible) %></th>
|
17
17
|
<th><%= t("action") %></th>
|
18
18
|
</tr>
|
19
19
|
<tbody>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<h1><%= t("static_content.editing_page") %></h1>
|
2
|
+
<%= render "spree/shared/error_messages", :target => @page %>
|
3
|
+
|
4
|
+
<%= form_for [:admin, @page] do |f| %>
|
5
|
+
<%= render :partial => 'form', :locals => { :f => f } %>
|
6
|
+
<%= render :partial => 'spree/admin/shared/edit_resource_links' %>
|
7
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial => "spree/static_content/static_content_list", :collection => Spree::Page.visible.header_links, :as => :page %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<li class=<%=(request.fullpath[1..-1] == page.slug) ? 'current' : 'not'%>><%= link_to page.title, page.slug %></li>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<% content_for :head do -%>
|
2
|
+
<%- if @page.meta_title.present? -%>
|
3
|
+
<meta name="title" content="<%=@page.meta_title%>">
|
4
|
+
<%- else -%>
|
5
|
+
<meta name="title" content="<%=@page.title%>">
|
6
|
+
<%- end -%>
|
7
|
+
<meta name="keywords" content="<%=@page.meta_keywords%>">
|
8
|
+
<meta name="keywords" content="<%=@page.meta_description%>">
|
9
|
+
<% end -%>
|
10
|
+
|
11
|
+
<% content_for :sidebar do %>
|
12
|
+
<% if "products" == @current_controller && @taxon %>
|
13
|
+
<%= render :partial => "spree/shared/filters" %>
|
14
|
+
<% else %>
|
15
|
+
<%= render :partial => "spree/shared/taxonomies" %>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<h1><%= @page.title %></h1>
|
20
|
+
<div id="page_content">
|
21
|
+
<%= raw @page.body %>
|
22
|
+
</div>
|
@@ -1,24 +1,45 @@
|
|
1
|
-
|
2
|
-
module
|
3
|
-
|
1
|
+
if ::Rails.version < "3.1" || !::Rails.application.config.assets.enabled
|
2
|
+
module SpreeStaticContent
|
3
|
+
module Generators
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
def add_stylesheets
|
7
|
+
inject_into_file "app/assets/stylesheets/admin/all.css", " *= require formtastic\n", :before => /\*\//, :verbose => true
|
8
|
+
end
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
def add_migrations
|
11
|
+
run 'rake railties:install:migrations FROM=spree_static_content'
|
12
|
+
end
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
def run_migrations
|
15
|
+
res = ask "Would you like to run the migrations now? [Y/n]"
|
16
|
+
if res == "" || res.downcase == "y"
|
17
|
+
run 'rake db:migrate'
|
18
|
+
else
|
19
|
+
puts "Skiping rake db:migrate, don't forget to run it!"
|
20
|
+
end
|
21
|
+
end
|
20
22
|
end
|
21
23
|
end
|
22
24
|
end
|
23
|
-
|
25
|
+
else
|
26
|
+
module SpreeStaticContent
|
27
|
+
module Generators
|
28
|
+
class InstallGenerator < Rails::Generators::Base
|
29
|
+
def add_migrations
|
30
|
+
run 'rake railties:install:migrations FROM=spree_static_content'
|
31
|
+
end
|
32
|
+
|
33
|
+
def run_migrations
|
34
|
+
res = ask "Would you like to run the migrations now? [Y/n]"
|
35
|
+
if res == "" || res.downcase == "y"
|
36
|
+
run 'rake db:migrate'
|
37
|
+
else
|
38
|
+
puts "Skiping rake db:migrate, don't forget to run it!"
|
39
|
+
end
|
40
|
+
end
|
24
41
|
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/spree_static_content.rb
CHANGED
@@ -1,21 +1,2 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
|
4
|
-
module SpreeStaticContent
|
5
|
-
class Engine < Rails::Engine
|
6
|
-
engine_name 'spree_static_content'
|
7
|
-
|
8
|
-
def self.activate
|
9
|
-
Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
|
10
|
-
Rails.application.config.cache_classes ? require(c) : load(c)
|
11
|
-
end
|
12
|
-
|
13
|
-
Dir.glob(File.join(File.dirname(__FILE__), "../app/overrides/**/*.rb")) do |c|
|
14
|
-
Rails.application.config.cache_classes ? require(c) : load(c)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
config.to_prepare &method(:activate).to_proc
|
18
|
-
config.autoload_paths += %W(#{config.root}/lib)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
1
|
+
require 'spree/core'
|
2
|
+
require 'spree_static_content/engine'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module SpreeStaticContent
|
2
|
+
class Engine < Rails::Engine
|
3
|
+
engine_name 'spree_static_content'
|
4
|
+
|
5
|
+
def self.activate
|
6
|
+
Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c|
|
7
|
+
Rails.application.config.cache_classes ? require(c) : load(c)
|
8
|
+
end
|
9
|
+
Dir.glob(File.join(File.dirname(__FILE__), "../../app/overrides/**/*.rb")) do |c|
|
10
|
+
Rails.application.config.cache_classes ? require(c) : load(c)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
config.to_prepare &method(:activate).to_proc
|
14
|
+
config.autoload_paths += %W(#{config.root}/lib)
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_static_content
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
-
|
9
|
-
|
10
|
-
version: 0.70.3
|
9
|
+
- 1
|
10
|
+
version: 1.0.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Peter Berkenbosch
|
@@ -24,14 +24,14 @@ dependencies:
|
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
29
|
+
hash: 23
|
30
30
|
segments:
|
31
|
-
- 0
|
32
|
-
- 70
|
33
31
|
- 1
|
34
|
-
|
32
|
+
- 0
|
33
|
+
- 0
|
34
|
+
version: 1.0.0
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
@@ -40,20 +40,36 @@ dependencies:
|
|
40
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
hash:
|
45
|
+
hash: 23
|
46
46
|
segments:
|
47
|
-
- 0
|
48
|
-
- 70
|
49
47
|
- 1
|
50
|
-
|
48
|
+
- 0
|
49
|
+
- 0
|
50
|
+
version: 1.0.0
|
51
51
|
type: :runtime
|
52
52
|
version_requirements: *id002
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
|
-
name:
|
54
|
+
name: capybara
|
55
55
|
prerelease: false
|
56
56
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - "="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 21
|
62
|
+
segments:
|
63
|
+
- 1
|
64
|
+
- 0
|
65
|
+
- 1
|
66
|
+
version: 1.0.1
|
67
|
+
type: :development
|
68
|
+
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: factory_girl
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
57
73
|
none: false
|
58
74
|
requirements:
|
59
75
|
- - ">="
|
@@ -62,12 +78,41 @@ dependencies:
|
|
62
78
|
segments:
|
63
79
|
- 0
|
64
80
|
version: "0"
|
65
|
-
type: :
|
66
|
-
version_requirements: *
|
81
|
+
type: :development
|
82
|
+
version_requirements: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: ffaker
|
85
|
+
prerelease: false
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 3
|
92
|
+
segments:
|
93
|
+
- 0
|
94
|
+
version: "0"
|
95
|
+
type: :development
|
96
|
+
version_requirements: *id005
|
67
97
|
- !ruby/object:Gem::Dependency
|
68
98
|
name: rspec-rails
|
69
99
|
prerelease: false
|
70
|
-
requirement: &
|
100
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ~>
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 13
|
106
|
+
segments:
|
107
|
+
- 2
|
108
|
+
- 7
|
109
|
+
version: "2.7"
|
110
|
+
type: :development
|
111
|
+
version_requirements: *id006
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: sqlite3
|
114
|
+
prerelease: false
|
115
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
71
116
|
none: false
|
72
117
|
requirements:
|
73
118
|
- - ">="
|
@@ -77,7 +122,7 @@ dependencies:
|
|
77
122
|
- 0
|
78
123
|
version: "0"
|
79
124
|
type: :development
|
80
|
-
version_requirements: *
|
125
|
+
version_requirements: *id007
|
81
126
|
description:
|
82
127
|
email: peter@pero-ict.nl
|
83
128
|
executables: []
|
@@ -88,18 +133,25 @@ extra_rdoc_files: []
|
|
88
133
|
|
89
134
|
files:
|
90
135
|
- README.md
|
136
|
+
- lib/spree_static_content/engine.rb
|
91
137
|
- lib/spree_static_content.rb
|
92
138
|
- lib/generators/spree_static_content/install_generator.rb
|
93
|
-
- app/models/page.rb
|
94
|
-
- app/views/admin/pages/_form.html.erb
|
95
|
-
- app/views/admin/pages/edit.html.erb
|
96
|
-
- app/views/admin/pages/new.html.erb
|
97
|
-
- app/views/admin/pages/index.html.erb
|
98
|
-
- app/views/static_content/
|
139
|
+
- app/models/spree/page.rb
|
140
|
+
- app/views/spree/admin/pages/_form.html.erb
|
141
|
+
- app/views/spree/admin/pages/edit.html.erb
|
142
|
+
- app/views/spree/admin/pages/new.html.erb
|
143
|
+
- app/views/spree/admin/pages/index.html.erb
|
144
|
+
- app/views/spree/static_content/_static_content_sidebar.html.erb
|
145
|
+
- app/views/spree/static_content/_static_content_footer.html.erb
|
146
|
+
- app/views/spree/static_content/show.html.erb
|
147
|
+
- app/views/spree/static_content/_static_content_list.html.erb
|
148
|
+
- app/views/spree/static_content/_static_content_header.html.erb
|
149
|
+
- app/overrides/pages_in_footer.rb
|
99
150
|
- app/overrides/static_content_admin_tab.rb
|
100
|
-
- app/
|
101
|
-
- app/
|
102
|
-
- app/controllers/
|
151
|
+
- app/overrides/pages_in_sidebar.rb
|
152
|
+
- app/overrides/pages_in_header.rb
|
153
|
+
- app/controllers/spree/static_content_controller.rb
|
154
|
+
- app/controllers/spree/admin/pages_controller.rb
|
103
155
|
homepage: http://spreecommerce.com/extensions/139-static-content
|
104
156
|
licenses: []
|
105
157
|
|
@@ -1,16 +0,0 @@
|
|
1
|
-
class Admin::PagesController < Admin::ResourceController
|
2
|
-
update.after :expire_cache
|
3
|
-
|
4
|
-
def new
|
5
|
-
@page = @object
|
6
|
-
end
|
7
|
-
|
8
|
-
def edit
|
9
|
-
@page = @object
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
def expire_cache
|
14
|
-
expire_page :controller => '/static_content', :action => 'show', :path => @object.slug
|
15
|
-
end
|
16
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
Spree::BaseController.class_eval do
|
2
|
-
# ProductsHelper needed for seo_url method used when generating
|
3
|
-
# taxonomies partial in content/show.html.erb.
|
4
|
-
helper :products
|
5
|
-
# Use before_filter instead of prepend_before_filter to ensure that
|
6
|
-
# ApplicationController filters that the view may require are run.
|
7
|
-
before_filter :render_page_if_exists
|
8
|
-
|
9
|
-
# Checks if page is not beeing overriden by static one that starts with /
|
10
|
-
#
|
11
|
-
# Using request.path allows us to override dynamic pages including
|
12
|
-
# the home page, product and taxon pages.
|
13
|
-
def render_page_if_exists
|
14
|
-
# If we don't know if page exists we assume it's and we query DB.
|
15
|
-
# But we realy don't want to query DB on each page we're sure doesn't exist!
|
16
|
-
return if Rails.cache.fetch('page_not_exist/'+request.path)
|
17
|
-
|
18
|
-
if @page = Page.visible.find_by_slug(request.path)
|
19
|
-
|
20
|
-
#load @content object to load correct meta_keywords & meta_description
|
21
|
-
@content = @page
|
22
|
-
|
23
|
-
if @page.layout && !@page.layout.empty?
|
24
|
-
render :template => 'static_content/show', :layout => @page.layout
|
25
|
-
else
|
26
|
-
render :template => 'static_content/show'
|
27
|
-
end
|
28
|
-
else
|
29
|
-
Rails.cache.write('page_not_exist/'+request.path, true)
|
30
|
-
return(nil)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
<%= f.inputs do %>
|
2
|
-
<%= f.input :title %>
|
3
|
-
<%= f.input :slug %>
|
4
|
-
<%= f.input :body %>
|
5
|
-
<%= f.input :foreign_link %>
|
6
|
-
<%= f.input :meta_title %>
|
7
|
-
<%= f.input :meta_keywords %>
|
8
|
-
<%= f.input :meta_description %>
|
9
|
-
<%= f.input :show_in_sidebar %>
|
10
|
-
<%= f.input :show_in_header %>
|
11
|
-
<%= f.input :show_in_footer %>
|
12
|
-
<%= f.input :position %>
|
13
|
-
<%= f.input :layout %>
|
14
|
-
<%= f.input :visible %>
|
15
|
-
<% end %>
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<h1><%= t("static_content.editing_page") %></h1>
|
2
|
-
<%= render "shared/error_messages", :target => @page %>
|
3
|
-
|
4
|
-
<%= semantic_form_for([:admin, @page]) do |f| -%>
|
5
|
-
<%= render :partial => "form", :locals => { :f => f } %>
|
6
|
-
<p class="form-buttons">
|
7
|
-
<%= button t("actions.update"), nil, 'submit' %>
|
8
|
-
<%= t("or") %> <%= link_to t("actions.cancel"), admin_pages_path %>
|
9
|
-
</p>
|
10
|
-
<% end %>
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<h1><%= t("static_content.new_page") %></h1>
|
2
|
-
<%= render "shared/error_messages", :target => @page %>
|
3
|
-
|
4
|
-
<%= semantic_form_for([:admin, @page]) do |f| %>
|
5
|
-
<%= render :partial => "form", :locals => { :f => f } %>
|
6
|
-
<p class="form-buttons">
|
7
|
-
<%= button t("actions.create"), nil, 'submit' %>
|
8
|
-
<%= t("or") %> <%= link_to t("actions.cancel"), admin_pages_path %>
|
9
|
-
</p>
|
10
|
-
<% end %>
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<% content_for :head do -%>
|
2
|
-
<meta name="title" content="<%=@page.title%>">
|
3
|
-
<% end -%>
|
4
|
-
<% content_for :sidebar do %>
|
5
|
-
<% if "products" == @current_controller && @taxon %>
|
6
|
-
<%= render :partial => "shared/filters" %>
|
7
|
-
<% else %>
|
8
|
-
<%= render :partial => "shared/taxonomies" %>
|
9
|
-
<% end %>
|
10
|
-
<% end %>
|
11
|
-
<h1><%= @page.title %></h1>
|
12
|
-
<div id="page_content">
|
13
|
-
<%= raw @page.body %>
|
14
|
-
</div>
|