array( 'name' => 'Category', 'type' => 'list', 'values' => array( 'All' => 'all', 'Technology News' => 'technology-news', 'CIO Briefing' => 'cio-briefing', 'Emerging Tech' => 'emerging-tech', 'Cybersecurity' => 'cybersecurity', 'IT Modernization' => 'it-modernization', 'Policy' => 'policy', 'Ideas' => 'ideas', ) ) )); public function collectData(){ $this->collectExpandableDatas(self::URI . 'rss/' . $this->getInput('category') . '/', 10); } protected function parseItem($newsItem){ $item = parent::parseItem($newsItem); $article_thumbnail = 'https://cdn.nextgov.com/nextgov/images/logo.png'; $item['content'] = '

' . $item['content'] . '

'; $namespaces = $newsItem->getNamespaces(true); if(isset($namespaces['media'])) { $media = $newsItem->children($namespaces['media']); if(isset($media->content)) { $attributes = $media->content->attributes(); $item['content'] = '

' . $item['content']; $article_thumbnail = str_replace( 'large.jpg', 'small.jpg', strval($attributes['url']) ); } } $item['enclosures'] = array($article_thumbnail); $item['content'] .= $this->extractContent($item['uri']); return $item; } private function extractContent($url){ $article = getSimpleHTMLDOMCached($url); if (!is_object($article)) return 'Could not request Nextgov: ' . $url; $contents = $article->find('div.wysiwyg', 0); $contents = $contents->innertext; $contents = stripWithDelimiters($contents, '
', '
'); $contents = stripWithDelimiters($contents, ''); //ad outer div return trim(stripWithDelimiters($contents, '')); } }