diff --git a/app/helpers/boxes_helper.rb b/app/helpers/boxes_helper.rb index c8e9457..2b948cd 100644 --- a/app/helpers/boxes_helper.rb +++ b/app/helpers/boxes_helper.rb @@ -81,8 +81,8 @@ module BoxesHelper box_decorator == DontMoveBlocks end - def display_block_content(block, main_content = nil) - content = block.main? ? wrap_main_content(main_content) : block.content + def display_block_content(block, person, main_content = nil) + content = block.main? ? wrap_main_content(main_content) : block.content({:person => person}) result = extract_block_content(content) footer_content = extract_block_content(block.footer) unless footer_content.blank? diff --git a/app/models/article_block.rb b/app/models/article_block.rb index dabaa3f..bb802be 100644 --- a/app/models/article_block.rb +++ b/app/models/article_block.rb @@ -8,7 +8,7 @@ class ArticleBlock < Block _('This block displays one of your articles. You can edit the block to select which one of your articles is going to be displayed in the block.') end - def content + def content(args={}) block = self lambda do block_title(block.title) + diff --git a/app/models/block.rb b/app/models/block.rb index ca5e19b..cd4378b 100644 --- a/app/models/block.rb +++ b/app/models/block.rb @@ -81,7 +81,7 @@ class Block < ActiveRecord::Base # The method can also return nil, which means "no content". # # See BoxesHelper#extract_block_content for implementation details. - def content + def content(args={}) "This is block number %d" % self.id end diff --git a/app/models/blog_archives_block.rb b/app/models/blog_archives_block.rb index 7d04790..814e543 100644 --- a/app/models/blog_archives_block.rb +++ b/app/models/blog_archives_block.rb @@ -20,11 +20,15 @@ class BlogArchivesBlock < Block blog_id && owner.blogs.exists?(blog_id) ? owner.blogs.find(blog_id) : owner.blog end - def content + 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 = '' - owner_blog.posts.native_translations.group_by {|i| i.published_at.year }.sort_by { |year,count| -year }.each do |year, results_by_year| + 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 << "