'Int', ]; /** * @var array */ private static $has_one = [ 'Blog' => Blog::class, ]; /** * @var string */ private static $table_name = 'BlogFeaturedPostsWidget'; /** * {@inheritdoc} */ public function getCMSFields() { $this->beforeUpdateCMSFields(function ($fields) { /** * @var FieldList $fields */ $fields->merge([ DropdownField::create('BlogID', _t(__CLASS__ . '.Blog', 'Blog'), Blog::get()->map()), NumericField::create('NumberOfPosts', _t(__CLASS__ . '.NumberOfPosts', 'Number of Posts')) ]); }); return parent::getCMSFields(); } /** * @return array|DataList */ public function getPosts() { $blog = $this->Blog(); if ($blog) { return $blog->getBlogPosts() ->filter('ID:not', Director::get_current_page()->ID) ->filter('FeaturedInWidget', true) ->sort('RAND()') ->limit($this->NumberOfPosts); } return []; } }