class BlogArchivesBlock < Block include ActionView::Helpers::TagHelper include ActionView::Helpers::UrlHelper include ActionController::UrlWriter include ActionView::Helpers::AssetTagHelper include DatesHelper def self.description _('Blog posts') end def default_title _('Blog posts') end settings_items :blog_id, Integer def blog blog_id && owner.blogs.exists?(blog_id) ? owner.blogs.find(blog_id) : owner.blog end def visible_posts(person) blog.posts.native_translations.select {|post| post.display_to?(person)} end def content(args={}) owner_blog = self.blog return nil unless owner_blog results = '' visible_posts(args[:person]).group_by {|i| i.published_at.year }.sort_by { |year,count| -year }.each do |year, results_by_year| results << content_tag('li', content_tag('strong', "#{year} (#{results_by_year.size})")) results << "" end block_title(title) + content_tag('ul', results, :class => 'blog-archives') + content_tag('div', link_to(_('Subscribe RSS Feed'), owner_blog.feed.url), :class => 'subscribe-feed') end end