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, '