/** * Returns if the provided $content_type is a feed. * * @param string $document * The actual HTML or XML document from the HTTP request. * * @return bool * Returns true if this is a parsable feed, false if not. */ public static function isFeed($data) { Reader::setExtensionManager(\Drupal::service('feed.bridge.reader')); try { $feed_type = Reader::detectType($data); } catch (\Exception $e) { return FALSE; } return $feed_type != Reader::TYPE_ANY; }
/** * Constructor * * @param DOMElement $entry * @param int $entryKey * @param null|string $type */ public function __construct(DOMElement $entry, $entryKey, $type = null) { $this->entry = $entry; $this->entryKey = $entryKey; $this->domDocument = $entry->ownerDocument; if ($type !== null) { $this->data['type'] = $type; } else { $this->data['type'] = Reader::detectType($entry); } $this->_loadExtensions(); }
/** * Constructor * * @param DomDocument $domDocument The DOM object for the feed's XML * @param string $type Feed type */ public function __construct(DOMDocument $domDocument, $type = null) { $this->domDocument = $domDocument; $this->xpath = new DOMXPath($this->domDocument); if ($type !== null) { $this->data['type'] = $type; } else { $this->data['type'] = Reader::detectType($this->domDocument); } $this->registerNamespaces(); $this->indexEntries(); $this->loadExtensions(); }
/** * Constructor * * @param Zend_Feed_Abstract $feed The source Zend_Feed object * @param string $type Feed type * @return void */ public function __construct(\DomDocument $dom, $type = null, \DOMXPath $xpath = null) { $this->_domDocument = $dom; if ($type !== null) { $this->_data['type'] = $type; } else { $this->_data['type'] = Reader\Reader::detectType($dom); } if ($xpath !== null) { $this->_xpath = $xpath; } else { $this->_xpath = new \DOMXPath($this->_domDocument); } $this->_registerNamespaces(); }
/** * Constructor * * @param Zend_Feed_Entry_Abstract $entry * @param int $entryKey * @param string $type * @return void */ public function __construct(\DOMElement $entry, $entryKey, $type = null) { $this->_entry = $entry; $this->_entryKey = $entryKey; $this->_domDocument = $entry->ownerDocument; if ($type !== null) { $this->_data['type'] = $type; } else { $this->_data['type'] = Reader\Reader::detectType($entry->ownerDocument, true); } // set the XPath query prefix for the entry being queried if ($this->getType() == Reader\Reader::TYPE_RSS_10 || $this->getType() == Reader\Reader::TYPE_RSS_090) { $this->setXpathPrefix('//rss:item[' . ($this->_entryKey + 1) . ']'); } elseif ($this->getType() == Reader\Reader::TYPE_ATOM_10 || $this->getType() == Reader\Reader::TYPE_ATOM_03) { $this->setXpathPrefix('//atom:entry[' . ($this->_entryKey + 1) . ']'); } else { $this->setXpathPrefix('//item[' . ($this->_entryKey + 1) . ']'); } }
/** * @group ZF-9723 */ public function testDetectsTypeFromStringOrToRemindPaddyAboutForgettingATestWhichLetsAStupidTypoSurviveUnnoticedForMonths() { $feed = '<?xml version="1.0" encoding="utf-8" ?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"><channel></channel></rdf:RDF>'; $type = Reader\Reader::detectType($feed); $this->assertEquals(Reader\Reader::TYPE_RSS_10, $type); }
/** * Get the entry type * * @return string */ public function getType() { $type = $this->data['type']; if ($type === null) { $type = Reader\Reader::detectType($this->getEntryElement(), true); $this->setType($type); } return $type; }
/** * Get the feed type * * If null, it will attempt to autodetect the type. * * @return string */ public function getType() { $type = $this->data['type']; if (null === $type) { $type = Reader\Reader::detectType($this->getDomDocument()); $this->setType($type); } return $type; }
public function testImportRemoteFeedMethodPerformsAsExpected() { $uri = 'http://example.com/feeds/reader.xml'; $feedContents = file_get_contents($this->feedSamplePath . '/Reader/rss20.xml'); $response = $this->getMock('Zend\\Feed\\Reader\\Http\\ResponseInterface', array('getStatusCode', 'getBody')); $response->expects($this->once())->method('getStatusCode')->will($this->returnValue(200)); $response->expects($this->once())->method('getBody')->will($this->returnValue($feedContents)); $client = $this->getMock('Zend\\Feed\\Reader\\Http\\ClientInterface', array('get')); $client->expects($this->once())->method('get')->with($this->equalTo($uri))->will($this->returnValue($response)); $feed = Reader\Reader::importRemoteFeed($uri, $client); $this->assertInstanceOf('Zend\\Feed\\Reader\\Feed\\FeedInterface', $feed); $type = Reader\Reader::detectType($feed); $this->assertEquals(Reader\Reader::TYPE_RSS_20, $type); }