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); $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'] .= $this->extractContent($item['uri']); return $item; } private function stripWithDelimiters($string, $start, $end){ while (strpos($string, $start) !== false) { $section_to_remove = substr($string, strpos($string, $start)); $section_to_remove = substr($section_to_remove, 0, strpos($section_to_remove, $end) + strlen($end)); $string = str_replace($section_to_remove, '', $string); } return $string; } private function extractContent($url){ $article = getSimpleHTMLDOMCached($url) or returnServerError('Could not request Nextgov: ' . $url); $contents = $article->find('div.wysiwyg', 0)->innertext; $contents = $this->stripWithDelimiters($contents, '
', '
'); $contents = $this->stripWithDelimiters($contents, ''); //ad outer div return $this->stripWithDelimiters($contents, ''); $contents = ($article_thumbnail == '' ? '' : '

') . '

' . $article_subtitle . '

' . trim($contents); } }