class Integral::Widgets::RecentPosts

Outputs recent posts

Example Widget Markup <p class='integral-widget' data-widget-type='recent_posts' data-widget-value-tagged='awesome-tag'>

Public Class Methods

controller() click to toggle source

Frontend controller used to render views

# File lib/integral/widgets/recent_posts.rb, line 21
def self.controller
  Integral.frontend_parent_controller.constantize
end
default_options() click to toggle source

Default widget options

# File lib/integral/widgets/recent_posts.rb, line 26
def self.default_options
  {
    amount: 2,
    tagged: ''
  }
end
render(options = {}) click to toggle source

Render the recent posts

# File lib/integral/widgets/recent_posts.rb, line 10
def self.render(options = {})
  options = options.reverse_merge(default_options)

  controller.render(
    partial: 'integral/posts/collection',
    locals: { collection: skope(options) },
    layout: false
  )
end
skope(options) click to toggle source

Scope of the widget

# File lib/integral/widgets/recent_posts.rb, line 34
def self.skope(options)
  skope = Integral::Post.published.order(published_at: :desc)
  skope = skope.tagged_with(options[:tagged].split) if options[:tagged].present?
  skope.limit(options[:amount])
end