array( 'name' => 'Limit', 'type' => 'number', 'required' => false, 'title' => 'Maximum number of items to return', 'defaultValue' => 10 ), 'svgAsImg' => array( 'name' => 'SVG in "image" tag', 'type' => 'checkbox', 'title' => 'Some benchmarks are exported as SVG with "object" tag, but some RSS readers don\'t support this. "img" tag are supported by most browsers', 'defaultValue' => false ), )); public function collectData(){ $this->collectExpandableDatas('https://www.phoronix.com/rss.php', $this->getInput('n')); } protected function parseItem($newsItem){ $item = parent::parseItem($newsItem); // $articlePage gets the entire page's contents $articlePage = getSimpleHTMLDOM($newsItem->link); $articlePage = defaultLinkTo($articlePage, $this->getURI()); // Extract final link. From Facebook's like plugin. parse_str(parse_url($articlePage->find('iframe[src^=//www.facebook.com/plugins]', 0), PHP_URL_QUERY), $facebookQuery); if (array_key_exists('href', $facebookQuery)) { $newsItem->link = $facebookQuery['href']; } $item['content'] = $this->extractContent($articlePage); $pages = $articlePage->find('.pagination a[!title]'); foreach ($pages as $page) { $pageURI = urljoin($newsItem->link, html_entity_decode($page->href)); $page = getSimpleHTMLDOM($pageURI); $item['content'] .= $this->extractContent($page); } return $item; } private function extractContent($page){ $content = $page->find('.content', 0); $objects = $content->find('script[src^=//openbenchmarking.org]'); foreach ($objects as $object) { $objectSrc = preg_replace('/p=0/', 'p=2', $object->src); if ($this->getInput('svgAsImg')) { $object->outertext = ''; } else { $object->outertext = ''; } } $content = stripWithDelimiters($content, ''); return $content; } }