Esempio n. 1
0
File: Feed.php Progetto: Tawreh/mtg
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * 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();
 }
Esempio n. 3
0
 /**
  * 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();
 }
Esempio n. 4
0
 /**
  * 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();
 }
Esempio n. 5
0
 /**
  * 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) . ']');
     }
 }
Esempio n. 6
0
 /**
  * @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);
 }
Esempio n. 7
0
 /**
  * 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;
 }
Esempio n. 8
0
 /**
  * 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;
 }
Esempio n. 9
0
 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);
 }