recent_documents_block.rb 955 Bytes
class RecentDocumentsBlock < Block

  def self.description
    _('Last updates')
  end

  def default_title
    _('Recent content')
  end

  def help
    _('This block lists your content most recently updated.')
  end

  settings_items :limit, :type => :integer, :default => 5

  def content(args={})
    docs = self.docs
    title = self.title
    proc do
      block_title(title) +
        content_tag('ul', docs.map {|item| content_tag('li', link_to(h(item.title), item.url))}.join("\n"))
    end
  end

  def footer
    return nil unless self.owner.is_a?(Profile)

    profile = self.owner
    proc do
      link_to _('All content'), :profile => profile.identifier, :controller => 'profile', :action => 'sitemap'
    end
  end

  def docs
    self.limit.nil? ? owner.recent_documents(nil, {}, false) : owner.recent_documents(self.get_limit, {}, false)
  end

  def self.expire_on
      { :profile => [:article], :environment => [:article] }
  end
end