[ 'type' => 'list', 'name' => 'Category', 'values' => [ 'All' => 'all', 'Deep Dives' => 'Deep Dives', 'News' => 'News', 'Marketplace' => 'Marketplace', 'Merch' => 'Merch', ], 'title' => 'Choose article category', 'defaultValue' => 'all', ] ] ]; public function getIcon() { return 'https://www.minecraft.net/etc.clientlibs/minecraftnet/clientlibs/clientlib-site/resources/favicon.ico'; } public function collectData() { $json = getContents( 'https://www.minecraft.net/content/minecraftnet/language-masters/en-us/_jcr_content.articles.page-1.json' ); $articles = json_decode($json); if ($articles === null) { throwServerException('Failed to decode JSON content.'); } foreach ($articles->article_grid as $article) { if ($article->primary_category !== $this->getInput('category') && $this->getInput('category') !== 'all') { continue; } $this->items[] = [ 'title' => $article->default_tile->title, 'uid' => $article->article_url, 'uri' => self::URI . $article->article_url, 'content' => $article->default_tile->sub_header, 'categories' => [$article->primary_category], 'enclosures' => [self::URI . $article->default_tile->image->imageURL], ]; } } }