refinerycms-blog 0.9.8.0.rc2 → 1.0.rc10
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/admin/blog/comments_controller.rb +18 -4
- data/app/controllers/admin/blog/settings_controller.rb +9 -2
- data/app/controllers/blog/categories_controller.rb +7 -0
- data/app/controllers/blog/posts_controller.rb +43 -0
- data/app/controllers/blog_controller.rb +15 -0
- data/app/models/blog_comment.rb +47 -13
- data/app/models/blog_post.rb +22 -1
- data/app/views/admin/blog/_submenu.html.erb +6 -1
- data/app/views/admin/blog/categories/_category.html.erb +4 -2
- data/app/views/admin/blog/categories/_form.html.erb +10 -2
- data/app/views/admin/blog/comments/_comment.html.erb +13 -10
- data/app/views/admin/blog/comments/index.html.erb +1 -1
- data/app/views/admin/blog/comments/show.html.erb +63 -0
- data/app/views/admin/blog/posts/_form.html.erb +9 -1
- data/app/views/admin/blog/posts/_post.html.erb +3 -1
- data/app/views/blog/categories/show.html.erb +20 -0
- data/app/views/blog/posts/_comment.html.erb +9 -0
- data/app/views/blog/posts/index.html.erb +17 -0
- data/app/views/blog/posts/index.rss.builder +17 -0
- data/app/views/blog/posts/show.html.erb +85 -0
- data/app/views/blog/shared/_categories.html.erb +8 -0
- data/app/views/blog/shared/_post.html.erb +22 -0
- data/app/views/blog/shared/_posts.html.erb +8 -0
- data/app/views/blog/shared/_rss_feed.html.erb +2 -0
- data/config/locales/en.yml +54 -18
- data/config/routes.rb +51 -5
- data/generators/refinery_blog/refinery_blog_generator.rb +15 -16
- data/generators/refinery_blog/templates/{migration.rb → db/migrate/migration.rb} +0 -0
- data/generators/refinery_blog/templates/{seed.rb → db/seeds/seed.rb} +0 -0
- data/lib/gemspec.rb +1 -1
- data/lib/generators/refinery_blog/templates/db/migrate/migration_number_create_singular_name.rb +26 -0
- data/lib/generators/refinery_blog/templates/db/seeds/seed.rb +16 -0
- data/lib/generators/refinery_blog_generator.rb +79 -0
- data/lib/refinerycms-blog.rb +23 -3
- data/public/images/refinerycms-blog/icons/down.gif +0 -0
- data/public/images/refinerycms-blog/icons/up.gif +0 -0
- data/public/images/refinerycms-blog/rss-feed.png +0 -0
- data/public/javascripts/refinery/refinerycms-blog.js +14 -4
- data/public/stylesheets/refinery/refinerycms-blog.css +18 -0
- data/public/stylesheets/refinerycms-blog.css +5 -0
- data/readme.md +24 -1
- metadata +27 -16
- data/app/controllers/blog_posts_controller.rb +0 -62
- data/app/views/blog_posts/_categories.html.erb +0 -0
- data/app/views/blog_posts/_comments.html.erb +0 -0
- data/app/views/blog_posts/_side_bar.html.erb +0 -8
- data/app/views/blog_posts/index.html.erb +0 -27
- data/app/views/blog_posts/show.html.erb +0 -76
@@ -0,0 +1,9 @@
|
|
1
|
+
<div class='blog_comment_message' id='<%= "comment-#{comment.to_param}" %>'>
|
2
|
+
<p>
|
3
|
+
<%= comment.message.to_s.gsub("\r\n\r\n", "</p><p>").gsub("\r\n", "<br/>") %>
|
4
|
+
</p>
|
5
|
+
</div>
|
6
|
+
<p class='blog_comment_author'>
|
7
|
+
<%= t('blog.posts.comments.by', :who => comment.name) %>,
|
8
|
+
<%= t('blog.posts.comments.time_ago', :time => time_ago_in_words(comment.created_at)) %>
|
9
|
+
</p>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<% content_for :body_content_left do %>
|
2
|
+
<%= @page[Page.default_parts.first.to_sym] %>
|
3
|
+
|
4
|
+
<ul id="blog_posts">
|
5
|
+
<%= render :partial => "/blog/shared/post", :collection => @blog_posts %>
|
6
|
+
</ul>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<% content_for :body_content_right do %>
|
10
|
+
<%= @page[Page.default_parts.second.to_sym] %>
|
11
|
+
|
12
|
+
<%= render :partial => "/blog/shared/categories" %>
|
13
|
+
<%= render :partial => "/blog/shared/rss_feed" %>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<%= render :partial => "/shared/content_page" %>
|
17
|
+
<% content_for :head, stylesheet_link_tag('refinerycms-blog') %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
xml.instruct! :xml, :version => "1.0"
|
2
|
+
xml.rss :version => "2.0" do
|
3
|
+
xml.channel do
|
4
|
+
xml.title RefinerySetting.find_or_set(:site_name, "Company Name")
|
5
|
+
xml.description RefinerySetting.find_or_set(:site_name, "Company Name") + " Blog Posts"
|
6
|
+
xml.link blog_root_url
|
7
|
+
|
8
|
+
@blog_posts.each do |post|
|
9
|
+
xml.item do
|
10
|
+
xml.title post.title
|
11
|
+
xml.description post.body
|
12
|
+
xml.pubDate post.created_at.to_s(:rfc822)
|
13
|
+
xml.link blog_post_url(post)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
<% content_for :head do %>
|
2
|
+
<% if BlogPost::ShareThis.enabled? %>
|
3
|
+
<script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script>
|
4
|
+
<script type="text/javascript">
|
5
|
+
stLight.options({publisher:'<%= BlogPost::ShareThis.key %>'});
|
6
|
+
</script>
|
7
|
+
<% end %>
|
8
|
+
<% end %>
|
9
|
+
|
10
|
+
<% content_for :body_content_title, @blog_post.title %>
|
11
|
+
|
12
|
+
<% content_for :body_content_left do %>
|
13
|
+
<p class='posted_at'>
|
14
|
+
<%= t('blog.shared.posts.created_at', :when => @blog_post.created_at.strftime('%d %B %Y')) %>.
|
15
|
+
|
16
|
+
<% if (categories = @blog_post.categories).any? %>
|
17
|
+
<span class='filed_in'>
|
18
|
+
<%= t('.filed_in') %>
|
19
|
+
<% categories.each_with_index do |category, index| %>
|
20
|
+
<%= link_to category.title, blog_category_url(category) -%><%= ',' if index < ((categories.length) - 1) %>
|
21
|
+
<% end %>
|
22
|
+
</span>
|
23
|
+
<% end %>
|
24
|
+
</p>
|
25
|
+
<%= @blog_post.body %>
|
26
|
+
|
27
|
+
<% if BlogPost::ShareThis.enabled? %>
|
28
|
+
<span class="st_sharethis" displayText="ShareThis"></span>
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
<% if BlogPost.comments_allowed? %>
|
32
|
+
<h2><%= t('.comments.title') %></h2>
|
33
|
+
|
34
|
+
<% if (comments = @blog_post.comments.approved).any? %>
|
35
|
+
<%= render :partial => "comment", :collection => comments %>
|
36
|
+
<% else %>
|
37
|
+
<p>
|
38
|
+
<%= t('blog.shared.comments.none') %>.
|
39
|
+
</p>
|
40
|
+
<% end %>
|
41
|
+
|
42
|
+
<% flash.each do |key, value| %>
|
43
|
+
<div id='flash' class="flash flash_<%= key %>">
|
44
|
+
<%= value %>
|
45
|
+
</div>
|
46
|
+
<% end %>
|
47
|
+
|
48
|
+
<h2><%= t('.comments.add') %></h2>
|
49
|
+
<% form_for [:blog_post, @blog_comment] do |f| %>
|
50
|
+
<% if Rails.version < '3.0.0'%>
|
51
|
+
<%= f.error_messages %>
|
52
|
+
<% else %>
|
53
|
+
<%= render :partial => "/shared/admin/error_messages",
|
54
|
+
:locals => {
|
55
|
+
:object => f.object,
|
56
|
+
:include_object_name => true
|
57
|
+
} %>
|
58
|
+
<% end %>
|
59
|
+
<div class='field'>
|
60
|
+
<%= f.label :name %>
|
61
|
+
<%= f.text_field :name %>
|
62
|
+
</div>
|
63
|
+
<div class='field'>
|
64
|
+
<%= f.label :email %>
|
65
|
+
<%= f.text_field :email %>
|
66
|
+
</div>
|
67
|
+
<div class='field message_field'>
|
68
|
+
<%= f.label :message %>
|
69
|
+
<%= f.text_area :message, :rows => 6 %>
|
70
|
+
</div>
|
71
|
+
<div class='field form-actions'>
|
72
|
+
<%= f.submit t('.submit') %>
|
73
|
+
</div>
|
74
|
+
<% end %>
|
75
|
+
<% end %>
|
76
|
+
<% end %>
|
77
|
+
|
78
|
+
<% content_for :body_content_right do %>
|
79
|
+
<%= render :partial => "/blog/shared/categories" %>
|
80
|
+
<%= render :partial => "/blog/shared/posts" %>
|
81
|
+
<%= render :partial => "/blog/shared/rss_feed" %>
|
82
|
+
<% end %>
|
83
|
+
|
84
|
+
<%= render :partial => "/shared/content_page" %>
|
85
|
+
<% content_for :head, stylesheet_link_tag('refinerycms-blog') %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<h2><%= t('.title') %></h2>
|
2
|
+
<ul id='categories'>
|
3
|
+
<% @blog_categories.each do |category| %>
|
4
|
+
<li<%= " class='selected'" if @category.present? and @category.id == category.id %>>
|
5
|
+
<%= link_to "#{category.title} (#{category.posts.count})", blog_category_url(category) %>
|
6
|
+
</li>
|
7
|
+
<% end %>
|
8
|
+
</ul>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<li>
|
2
|
+
<h2><%= link_to post.title, blog_post_url(post) %></h2>
|
3
|
+
<p class='posted_at'>
|
4
|
+
<%= t('blog.shared.posts.created_at', :when => post.created_at.strftime('%d %B %Y')) %>
|
5
|
+
</p>
|
6
|
+
<div clas='clearfix'>
|
7
|
+
<%= truncate(post.body,
|
8
|
+
:length => RefinerySetting.find_or_set(:blog_post_teaser_length, 250),
|
9
|
+
:preserve_html_tags => true) %>
|
10
|
+
</div>
|
11
|
+
<p>
|
12
|
+
<%= link_to t('blog.shared.posts.read_more'), blog_post_url(post) %>
|
13
|
+
|
14
|
+
<span class='comment_count'>
|
15
|
+
<% if post.comments.any? %>
|
16
|
+
(<%= pluralize(post.comments.count, t('blog.shared.comments.singular')) %>)
|
17
|
+
<% else %>
|
18
|
+
(<%= t('blog.shared.comments.none') %>)
|
19
|
+
<% end %>
|
20
|
+
</span>
|
21
|
+
</p>
|
22
|
+
</li>
|
data/config/locales/en.yml
CHANGED
@@ -9,17 +9,36 @@ en:
|
|
9
9
|
edit: Edit this category
|
10
10
|
delete: Delete this category forever
|
11
11
|
index:
|
12
|
-
no_items_yet: There are no categories yet. Click "{{create}}" to add your first category.
|
12
|
+
no_items_yet: 'There are no categories yet. Click "{{create}}" to add your first category.'
|
13
13
|
comments:
|
14
|
+
approved: 'The comment from "{{author}}" has been approved.'
|
15
|
+
comment:
|
16
|
+
view_live: View this comment live <br/><em>(opens in a new window)</em>
|
17
|
+
read: Read this comment
|
18
|
+
reject: Reject this comment
|
19
|
+
approve: Approve this comment
|
20
|
+
rejected: 'The comment from "{{author}}" has been rejected.'
|
14
21
|
index:
|
15
|
-
no_items_yet: There are no {{type}} comments
|
22
|
+
no_items_yet: 'There are no {{type}} comments.'
|
23
|
+
show:
|
24
|
+
comment: Comment
|
25
|
+
blog_post: Blog Post
|
26
|
+
from: Posted by
|
27
|
+
date: Posted at
|
28
|
+
message: Comment
|
29
|
+
details: Details
|
30
|
+
age: Age
|
31
|
+
actions: Actions
|
32
|
+
back: Back to all comments
|
33
|
+
reject: Reject this comment
|
34
|
+
approve: Approve this comment
|
16
35
|
posts:
|
17
36
|
form:
|
18
37
|
advanced_options: Advanced Options
|
19
38
|
toggle_advanced_options: Click to access meta tag settings and menu options
|
20
39
|
save_as_draft: Save as Draft
|
21
40
|
index:
|
22
|
-
no_items_yet: There are no Blog Posts yet. Click "{{create}}" to add your first blog post.
|
41
|
+
no_items_yet: 'There are no Blog Posts yet. Click "{{create}}" to add your first blog post.'
|
23
42
|
post:
|
24
43
|
view_live: View this blog post live <br/><em>(opens in a new window)</em>
|
25
44
|
edit: Edit this blog post
|
@@ -27,9 +46,10 @@ en:
|
|
27
46
|
settings:
|
28
47
|
notification_recipients:
|
29
48
|
value: Send notifications to
|
30
|
-
explanation: Every time someone comments on a blog post, Refinery sends out an email to say there is a new comment.
|
31
|
-
hint: When a new comment is added, Refinery will send an email notification to you.
|
49
|
+
explanation: 'Every time someone comments on a blog post, Refinery sends out an email to say there is a new comment.'
|
50
|
+
hint: 'When a new comment is added, Refinery will send an email notification to you.'
|
32
51
|
example: "Enter your email address(es) like: jack@work.com, jill@office.com"
|
52
|
+
updated: 'Notification recipients have been set to "{{recipients}}"'
|
33
53
|
submenu:
|
34
54
|
categories:
|
35
55
|
title: Categories
|
@@ -37,6 +57,7 @@ en:
|
|
37
57
|
new: Create new category
|
38
58
|
comments:
|
39
59
|
title: Comments
|
60
|
+
title_with_count: 'Comments ({{new_count}} new)'
|
40
61
|
new: New
|
41
62
|
unmoderated: New
|
42
63
|
approved: Approved
|
@@ -49,18 +70,33 @@ en:
|
|
49
70
|
title: Settings
|
50
71
|
moderation: Moderation
|
51
72
|
update_notified: Update who gets notified
|
52
|
-
|
53
|
-
|
54
|
-
categories:
|
55
|
-
|
56
|
-
|
57
|
-
|
73
|
+
blog:
|
74
|
+
shared:
|
75
|
+
categories:
|
76
|
+
title: Categories
|
77
|
+
rss_feed:
|
78
|
+
title: RSS Feed
|
79
|
+
posts:
|
80
|
+
other: Other Posts
|
81
|
+
created_at: 'Posted on {{when}}'
|
82
|
+
read_more: Read more
|
83
|
+
comments:
|
84
|
+
singular: comment
|
85
|
+
none: no comments
|
86
|
+
categories:
|
87
|
+
show:
|
88
|
+
no_posts: There are no posts here yet.
|
89
|
+
posts:
|
90
|
+
comment: comment
|
58
91
|
comments:
|
59
|
-
|
60
|
-
by: Posted by {{who}}
|
92
|
+
by: 'Posted by {{who}}'
|
61
93
|
time_ago: '{{time}} ago'
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
94
|
+
thank_you: 'Thank you for commenting.'
|
95
|
+
thank_you_moderated: 'Thank you for commenting. Your message has been placed in the moderation queue and will appear shortly.'
|
96
|
+
show:
|
97
|
+
comments:
|
98
|
+
title: Comments
|
99
|
+
add: Make a Comment
|
100
|
+
other: Other Blog Posts
|
101
|
+
filed_in: Filed in
|
102
|
+
submit: Send comment
|
data/config/routes.rb
CHANGED
@@ -1,18 +1,27 @@
|
|
1
1
|
if Rails.version < '3.0.0'
|
2
2
|
ActionController::Routing::Routes.draw do |map|
|
3
|
-
map.
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
map.namespace(:blog) do |blog|
|
4
|
+
blog.rss_feed 'feed.rss', :controller => 'posts', :action => 'index', :format => 'rss'
|
5
|
+
blog.root :controller => "posts", :action => 'index'
|
6
|
+
blog.post ':id', :controller => "posts", :action => 'show'
|
7
|
+
blog.category 'categories/:id', :controller => "categories", :action => 'show'
|
8
|
+
blog.post_blog_comments ':id/comments', :controller => 'posts', :action => 'comment'
|
9
|
+
end
|
7
10
|
|
8
11
|
map.namespace(:admin, :path_prefix => 'refinery') do |admin|
|
9
12
|
admin.namespace :blog do |blog|
|
10
13
|
blog.resources :posts
|
14
|
+
|
11
15
|
blog.resources :categories
|
16
|
+
|
12
17
|
blog.resources :comments, :collection => {
|
13
18
|
:approved => :get,
|
14
19
|
:rejected => :get
|
20
|
+
}, :member => {
|
21
|
+
:approved => :get,
|
22
|
+
:rejected => :get
|
15
23
|
}
|
24
|
+
|
16
25
|
blog.resources :settings, :collection => {
|
17
26
|
:notification_recipients => [:get, :post],
|
18
27
|
:moderation => :get
|
@@ -21,5 +30,42 @@ if Rails.version < '3.0.0'
|
|
21
30
|
end
|
22
31
|
end
|
23
32
|
else
|
24
|
-
|
33
|
+
Refinery::Application.routes.draw do
|
34
|
+
scope(:path => 'blog', :module => 'blog') do
|
35
|
+
root :to => 'posts#index'
|
36
|
+
match 'feed.rss', :to => 'posts#index.rss', :as => 'rss_feed'
|
37
|
+
match ':id', :to => 'posts#show', :as => 'blog_post'
|
38
|
+
match 'categories/:id', :to => 'categories#show', :as => 'blog_category'
|
39
|
+
match ':id/comments', :to => 'posts#comment', :as => 'blog_post_blog_comments'
|
40
|
+
end
|
41
|
+
|
42
|
+
scope(:path => 'refinery', :as => 'admin', :module => 'admin') do
|
43
|
+
scope(:path => 'blog', :name_prefix => 'admin', :as => 'blog', :module => 'blog') do
|
44
|
+
root :to => 'posts#index'
|
45
|
+
resources :posts
|
46
|
+
|
47
|
+
resources :categories
|
48
|
+
|
49
|
+
resources :comments do
|
50
|
+
collection do
|
51
|
+
get :approved
|
52
|
+
get :rejected
|
53
|
+
end
|
54
|
+
member do
|
55
|
+
get :approved
|
56
|
+
get :rejected
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
resources :settings do
|
61
|
+
collection do
|
62
|
+
get :notification_recipients
|
63
|
+
post :notification_recipients
|
64
|
+
|
65
|
+
get :moderation
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
25
71
|
end
|
@@ -12,24 +12,23 @@ class RefineryBlogGenerator < Rails::Generator::NamedBase
|
|
12
12
|
|
13
13
|
def manifest
|
14
14
|
record do |m|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
m.directory((%w(public) | dir.split('public/').last.split('/')).join('/'))
|
23
|
-
end
|
24
|
-
matches.reject{|f| File.directory?(f)}.each do |image|
|
25
|
-
path = (%w(public) | image.split('public/').last.split('/'))[0...-1].join('/')
|
26
|
-
m.template "../../../#{path}/#{image.split('/').last}", "#{path}/#{image.split('/').last}"
|
27
|
-
end
|
15
|
+
matches = Dir[
|
16
|
+
File.expand_path('../../../public/images/**/*', __FILE__),
|
17
|
+
File.expand_path('../../../public/stylesheets/**/*', __FILE__),
|
18
|
+
File.expand_path('../../../public/javascripts/**/*', __FILE__),
|
19
|
+
]
|
20
|
+
matches.reject{|d| !File.directory?(d)}.each do |dir|
|
21
|
+
m.directory((%w(public) | dir.split('public/').last.split('/')).join('/'))
|
28
22
|
end
|
23
|
+
matches.reject{|f| File.directory?(f)}.each do |image|
|
24
|
+
path = (%w(public) | image.split('public/').last.split('/'))[0...-1].join('/')
|
25
|
+
m.template "../../../#{path}/#{image.split('/').last}", "#{path}/#{image.split('/').last}"
|
26
|
+
end
|
27
|
+
|
28
|
+
m.directory('db/seeds')
|
29
|
+
m.template('db/seeds/seed.rb', 'db/seeds/refinerycms_blog.rb')
|
29
30
|
|
30
|
-
m.
|
31
|
-
|
32
|
-
m.migration_template('migration.rb', 'db/migrate',
|
31
|
+
m.migration_template('db/migrate/migration.rb', 'db/migrate',
|
33
32
|
:migration_file_name => 'create_blog_structure',
|
34
33
|
:assigns => {
|
35
34
|
:migration_name => 'CreateBlogStructure',
|
File without changes
|
File without changes
|
data/lib/gemspec.rb
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.homepage = %q{http://refinerycms.com}
|
18
18
|
s.authors = %w(Resolve\\ Digital Neoteric\\ Design)
|
19
19
|
s.require_paths = %w(lib)
|
20
|
-
s.add_dependency 'refinerycms', '
|
20
|
+
s.add_dependency 'refinerycms', '>= 0.9.7.13'
|
21
21
|
s.add_dependency 'filters_spam', '~> 0.2'
|
22
22
|
|
23
23
|
s.files = %w(
|
data/lib/generators/refinery_blog/templates/db/migrate/migration_number_create_singular_name.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
class Create<%= singular_name.camelize %> < ActiveRecord::Migration
|
2
|
+
|
3
|
+
def self.up<% @refinerycms_blog_tables.each do |table| %>
|
4
|
+
create_table :<%= table[:table_name] %>, :id => <%= table[:id].to_s %> do |t|
|
5
|
+
<% table[:attributes].each do |attribute| -%>
|
6
|
+
t.<%= attribute.type %> :<%= attribute.name %>
|
7
|
+
<% end -%>
|
8
|
+
<%= 't.timestamps' if table[:id] %>
|
9
|
+
end
|
10
|
+
|
11
|
+
<%= "add_index :#{table[:table_name]}, :id" if table[:id] %>
|
12
|
+
<% end -%>
|
13
|
+
load(Rails.root.join('db', 'seeds', 'refinerycms_blog.rb').to_s)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.down
|
17
|
+
UserPlugin.destroy_all({:name => "refinerycms_blog"})
|
18
|
+
|
19
|
+
Page.delete_all({:link_url => "/blog"})
|
20
|
+
|
21
|
+
<% @refinerycms_blog_tables.each do |table| -%>
|
22
|
+
drop_table :<%= table[:table_name] %>
|
23
|
+
<% end -%>
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
User.find(:all).each do |user|
|
2
|
+
user.plugins.create(:name => "<%= singular_name %>",
|
3
|
+
:position => (user.plugins.maximum(:position) || -1) +1)
|
4
|
+
end
|
5
|
+
|
6
|
+
page = Page.create(
|
7
|
+
:title => "Blog",
|
8
|
+
:link_url => "/blog",
|
9
|
+
:deletable => false,
|
10
|
+
:position => ((Page.maximum(:position, :conditions => {:parent_id => nil}) || -1)+1),
|
11
|
+
:menu_match => "^/blogs?(\/|\/.+?|)$"
|
12
|
+
)
|
13
|
+
|
14
|
+
Page.default_parts.each do |default_page_part|
|
15
|
+
page.parts.create(:title => default_page_part, :body => nil)
|
16
|
+
end
|