diff options
Diffstat (limited to 'app/helpers')
-rw-r--r-- | app/helpers/.gitkeep | 0 | ||||
-rw-r--r-- | app/helpers/blog_posts_helper.rb | 59 | ||||
-rw-r--r-- | app/helpers/refinery/blog/controller_helper.rb | 30 | ||||
-rw-r--r-- | app/helpers/refinery/blog/posts_helper.rb | 51 |
4 files changed, 81 insertions, 59 deletions
diff --git a/app/helpers/.gitkeep b/app/helpers/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app/helpers/.gitkeep diff --git a/app/helpers/blog_posts_helper.rb b/app/helpers/blog_posts_helper.rb deleted file mode 100644 index 0848632..0000000 --- a/app/helpers/blog_posts_helper.rb +++ /dev/null @@ -1,59 +0,0 @@ -module BlogPostsHelper - def blog_archive_list - posts = 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, archive_blog_posts_path(:year => year, :month => month)) - html << "</li>" - end - super_old_links.each do |l| - year = l.split('/')[1] - count = BlogPost.by_year(Time.parse(l)).size - text = "#{year} (#{count})" - html << "<li>" - html << link_to(text, 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? - 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 => RefinerySetting.find_or_set(:blog_post_teaser_length, 250), - :preserve_html_tags => true - }).html_safe - end - end -end diff --git a/app/helpers/refinery/blog/controller_helper.rb b/app/helpers/refinery/blog/controller_helper.rb new file mode 100644 index 0000000..035275c --- /dev/null +++ b/app/helpers/refinery/blog/controller_helper.rb @@ -0,0 +1,30 @@ +module Refinery + module Blog + module ControllerHelper + + protected + + def find_blog_post + unless (@blog_post = Refinery::Blog::Post.find(params[:id])).try(:live?) + if refinery_user? and current_refinery_user.authorized_plugins.include?("refinerycms_blog") + @blog_post = Refinery::Blog::Post.find(params[:id]) + else + error_404 + end + end + end + + def find_all_blog_posts + @blog_posts = Refinery::Blog::Post.live.includes(:comments, :categories).page(params[:page]) + end + + def find_tags + @tags = Refinery::Blog::Post.tag_counts_on(:tags) + end + + def find_all_blog_categories + @blog_categories = Refinery::Blog::Category.all + end + end + end +end diff --git a/app/helpers/refinery/blog/posts_helper.rb b/app/helpers/refinery/blog/posts_helper.rb new file mode 100644 index 0000000..418f360 --- /dev/null +++ b/app/helpers/refinery/blog/posts_helper.rb @@ -0,0 +1,51 @@ +module Refinery + module Blog + module PostsHelper + def blog_archive_widget + posts = Refinery::Blog::Post.select('published_at').all_previous + return nil if posts.blank? + + 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? + end + + def blog_post_teaser_enabled? + Refinery::Blog::Post.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 + + 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 = Blog::Post.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::Blog::Post.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 +end
\ No newline at end of file |