aboutsummaryrefslogtreecommitdiffstats
path: root/app/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers')
-rw-r--r--app/helpers/refinery/blog_posts_helper.rb56
1 files changed, 22 insertions, 34 deletions
diff --git a/app/helpers/refinery/blog_posts_helper.rb b/app/helpers/refinery/blog_posts_helper.rb
index 58b0a3a..bfc3f40 100644
--- a/app/helpers/refinery/blog_posts_helper.rb
+++ b/app/helpers/refinery/blog_posts_helper.rb
@@ -1,43 +1,12 @@
module Refinery
module BlogPostsHelper
- def blog_archive_list
+ def blog_archive_widget
posts = Refinery::BlogPost.select('published_at').all_previous
return nil if posts.blank?
- html = '<section id="blog_archive_list"><h2>'
- html << t('archives', :scope => 'blog.shared')
- html << '</h2><nav><ul>'
- links = []
- super_old_links = []
- posts.each do |e|
- if e.published_at >= Time.now.end_of_year.advance(:years => -3)
- links << e.published_at.strftime('%m/%Y')
- else
- super_old_links << e.published_at.strftime('01/%Y')
- end
- end
- links.uniq!
- super_old_links.uniq!
- links.each do |l|
- year = l.split('/')[1]
- month = l.split('/')[0]
- count = BlogPost.by_archive(Time.parse(l)).size
- text = t("date.month_names")[month.to_i] + " #{year} (#{count})"
- html << "<li>"
- html << link_to(text, main_app.archive_blog_posts_path(:year => year, :month => month))
- html << "</li>"
- end
- super_old_links.each do |l|
- year = l.split('/')[1]
- count = Refinery::BlogPost.by_year(Time.parse(l)).size
- text = "#{year} (#{count})"
- html << "<li>"
- html << link_to(text, main_app.archive_blog_posts_path(:year => year))
- html << "</li>"
- end
- html << '</ul></nav></section>'
- html.html_safe
+ render :partial => "/refinery/blog/widgets/blog_archive", :locals => { :posts => posts }
end
+ alias_method :blog_archive_list, :blog_archive_widget
def next_or_previous?(post)
post.next.present? or post.prev.present?
@@ -57,5 +26,24 @@ module Refinery
}).html_safe
end
end
+
+ def archive_link(post)
+ if post.published_at >= Time.now.end_of_year.advance(:years => -3)
+ post_date = post.published_at.strftime('%m/%Y')
+ year = post_date.split('/')[1]
+ month = post_date.split('/')[0]
+ count = BlogPost.by_archive(Time.parse(post_date)).size
+ text = t("date.month_names")[month.to_i] + " #{year} (#{count})"
+
+ link_to(text, main_app.archive_blog_posts_path(:year => year, :month => month))
+ else
+ post_date = post.published_at.strftime('01/%Y')
+ year = post_date.split('/')[1]
+ count = Refinery::BlogPost.by_year(Time.parse(post_date)).size
+ text = "#{year} (#{count})"
+
+ link_to(text, main_app.archive_blog_posts_path(:year => year))
+ end
+ end
end
end