ref: master
plugins/products/models/products_plugin/products_block.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
class ProductsPlugin::ProductsBlock < Block ## # Keep compatibility with previous core name # def self.sti_name 'ProductsBlock' end attr_accessible :product_ids include ActionView::Helpers::TagHelper include ActionView::Helpers::UrlHelper include ActionView::Helpers include Rails.application.routes.url_helpers def self.description _('Products') end def default_title _('Products') end def help _('This block presents a list of your products.') end settings_items :product_ids, type: Array def product_ids=(array) self.settings[:product_ids] = array if self.settings[:product_ids] self.settings[:product_ids] = self.settings[:product_ids].map(&:to_i) end end def products(reload = false) if product_ids.blank? owner.products.order('RANDOM()').limit([4,owner.products.count].min) else owner.products.where(:id => product_ids) end.compact end end |