array( 'name' => 'Category', 'type' => 'list', 'values' => array( 'All' => 'all', 'Technology News' => 'technology-news', 'CIO Briefing' => 'cio-briefing', 'Emerging Tech' => 'emerging-tech', 'Cloud' => 'cloud-computing', 'Cybersecurity' => 'cybersecurity', 'Mobile' => 'mobile', 'Health' => 'health', 'Defense' => 'defense', 'Big Data' => 'big-data' ) ) )); 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->find('svg.content-tombstone', 0)->outertext = ''; $contents = $contents->innertext; $contents = stripWithDelimiters($contents, '
', '
'); $contents = stripWithDelimiters($contents, ''); //ad outer div return trim(stripWithDelimiters($contents, '')); } }