diff options
author | Uģis Ozols <ugis.ozolss@gmail.com> | 2011-07-27 22:32:26 +0300 |
---|---|---|
committer | Uģis Ozols <ugis.ozolss@gmail.com> | 2011-07-27 22:32:26 +0300 |
commit | 164dc27a42876efdbd14db9e2d14311b4c119e52 (patch) | |
tree | 4a7e09dd7c8779942207d6eebe77c2c98e6029c2 /app/helpers/refinery/blog_posts_helper.rb | |
parent | ded42bc6916669f8025a10901484dc76dc26c4b2 (diff) | |
download | refinerycms-blog-164dc27a42876efdbd14db9e2d14311b4c119e52.tar.gz refinerycms-blog-164dc27a42876efdbd14db9e2d14311b4c119e52.tar.bz2 refinerycms-blog-164dc27a42876efdbd14db9e2d14311b4c119e52.zip |
Cucumber tag steps now pass.
Diffstat (limited to 'app/helpers/refinery/blog_posts_helper.rb')
-rw-r--r-- | app/helpers/refinery/blog_posts_helper.rb | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/app/helpers/refinery/blog_posts_helper.rb b/app/helpers/refinery/blog_posts_helper.rb new file mode 100644 index 0000000..58b0a3a --- /dev/null +++ b/app/helpers/refinery/blog_posts_helper.rb @@ -0,0 +1,61 @@ +module Refinery + module BlogPostsHelper + def blog_archive_list + 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 + end + + def next_or_previous?(post) + post.next.present? or post.prev.present? + end + + def blog_post_teaser_enabled? + Refinery::BlogPost.teasers_enabled? + end + + def blog_post_teaser(post) + if post.respond_to?(:custom_teaser) && post.custom_teaser.present? + post.custom_teaser.html_safe + else + truncate(post.body, { + :length => Refinery::Setting.find_or_set(:blog_post_teaser_length, 250), + :preserve_html_tags => true + }).html_safe + end + end + end +end |