51 lines
1.7 KiB
Ruby
51 lines
1.7 KiB
Ruby
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::Blog.post_teaser_length,
|
|
: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, refinery.blog_archive_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, refinery.blog_archive_posts_path(:year => year))
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|