diff options
Diffstat (limited to 'app/helpers/refinery/blog_posts_helper.rb')
-rw-r--r-- | app/helpers/refinery/blog_posts_helper.rb | 56 |
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 |