Пример #1
0
 /**
  * Constructor
  *
  * @param  DOMDocument $dom
  * @param  string $type
  */
 public function __construct(DomDocument $dom, $type = null)
 {
     parent::__construct($dom, $type);
     $atomClass = Zend_Feed_Reader::getPluginLoader()->getClassName('Atom_Feed');
     $this->_extensions['Atom_Feed'] = new $atomClass($dom, $this->_data['type'], $this->_xpath);
     foreach ($this->_extensions as $extension) {
         $extension->setXpathPrefix('/atom:feed');
     }
 }
Пример #2
0
 /**
  * Constructor
  *
  * @param  DOMElement $entry
  * @param  int $entryKey
  * @param  string $type
  * @return void
  */
 public function __construct(DOMElement $entry, $entryKey, $type = null)
 {
     parent::__construct($entry, $entryKey, $type);
     // Everyone by now should know XPath indices start from 1 not 0
     $this->_xpathQuery = '//atom:entry[' . ($this->_entryKey + 1) . ']';
     $atomClass = Zend_Feed_Reader::getPluginLoader()->getClassName('Atom_Entry');
     $this->_extensions['Atom_Entry'] = new $atomClass($entry, $entryKey, $type);
     $threadClass = Zend_Feed_Reader::getPluginLoader()->getClassName('Thread_Entry');
     $this->_extensions['Thread_Entry'] = new $threadClass($entry, $entryKey, $type);
 }
Пример #3
0
 /**
  * Constructor: Create a Source object which is largely just a normal
  * Zend_Feed_Reader_FeedAbstract object only designed to retrieve feed level
  * metadata from an Atom entry's source element.
  *
  * @param DOMElement $source
  * @param string $xpathPrefix Passed from parent Entry object
  * @param string $type Nearly always Atom 1.0
  */
 public function __construct(DOMElement $source, $xpathPrefix, $type = Zend_Feed_Reader::TYPE_ATOM_10)
 {
     $this->_domDocument = $source->ownerDocument;
     $this->_xpath = new DOMXPath($this->_domDocument);
     $this->_data['type'] = $type;
     $this->_registerNamespaces();
     $this->_loadExtensions();
     $atomClass = Zend_Feed_Reader::getPluginLoader()->getClassName('Atom_Feed');
     $this->_extensions['Atom_Feed'] = new $atomClass($this->_domDocument, $this->_data['type'], $this->_xpath);
     $atomClass = Zend_Feed_Reader::getPluginLoader()->getClassName('DublinCore_Feed');
     $this->_extensions['DublinCore_Feed'] = new $atomClass($this->_domDocument, $this->_data['type'], $this->_xpath);
     foreach ($this->_extensions as $extension) {
         $extension->setXpathPrefix(rtrim($xpathPrefix, '/') . '/atom:source');
     }
 }
Пример #4
0
 /**
  * Constructor
  *
  * @param  DOMDocument $dom
  * @param  string $type
  */
 public function __construct(DomDocument $dom, $type = null)
 {
     parent::__construct($dom, $type);
     $dublinCoreClass = Zend_Feed_Reader::getPluginLoader()->getClassName('DublinCore_Feed');
     $this->_extensions['DublinCore_Feed'] = new $dublinCoreClass($dom, $this->_data['type'], $this->_xpath);
     $atomClass = Zend_Feed_Reader::getPluginLoader()->getClassName('Atom_Feed');
     $this->_extensions['Atom_Feed'] = new $atomClass($dom, $this->_data['type'], $this->_xpath);
     if ($this->getType() !== Zend_Feed_Reader::TYPE_RSS_10 && $this->getType() !== Zend_Feed_Reader::TYPE_RSS_090) {
         $xpathPrefix = '/rss/channel';
     } else {
         $xpathPrefix = '/rdf:RDF/rss:channel';
     }
     foreach ($this->_extensions as $extension) {
         $extension->setXpathPrefix($xpathPrefix);
     }
 }
Пример #5
0
 /**
  * Load extensions from Zend_Feed_Reader
  *
  * @return void
  */
 protected function _loadExtensions()
 {
     $all = Zend_Feed_Reader::getExtensions();
     $feed = $all['entry'];
     foreach ($feed as $extension) {
         if (in_array($extension, $all['core'])) {
             continue;
         }
         $className = Zend_Feed_Reader::getPluginLoader()->getClassName($extension);
         $this->_extensions[$extension] = new $className($this->getElement(), $this->_entryKey, $this->_data['type']);
     }
 }
 public function testAddsPrefixPath()
 {
     Zend_Feed_Reader::addPrefixPath('A_B_C', '/A/B/C');
     $prefixPaths = Zend_Feed_Reader::getPluginLoader()->getPaths();
     $this->assertEquals('/A/B/C/', $prefixPaths['A_B_C_'][0]);
 }
Пример #7
0
 /**
  * Constructor
  *
  * @param  Zend_Feed_Entry_Abstract $entry
  * @param  string $entryKey
  * @param  string $type
  * @return void
  */
 public function __construct(DOMElement $entry, $entryKey, $type = null)
 {
     parent::__construct($entry, $entryKey, $type);
     $this->_xpathQueryRss = '//item[' . ($this->_entryKey + 1) . ']';
     $this->_xpathQueryRdf = '//rss:item[' . ($this->_entryKey + 1) . ']';
     $pluginLoader = Zend_Feed_Reader::getPluginLoader();
     $dublinCoreClass = $pluginLoader->getClassName('DublinCore_Entry');
     $this->_extensions['DublinCore_Entry'] = new $dublinCoreClass($entry, $entryKey, $type);
     $contentClass = $pluginLoader->getClassName('Content_Entry');
     $this->_extensions['Content_Entry'] = new $contentClass($entry, $entryKey, $type);
     $atomClass = $pluginLoader->getClassName('Atom_Entry');
     $this->_extensions['Atom_Entry'] = new $atomClass($entry, $entryKey, $type);
     $wfwClass = $pluginLoader->getClassName('WellFormedWeb_Entry');
     $this->_extensions['WellFormedWeb_Entry'] = new $wfwClass($entry, $entryKey, $type);
     $slashClass = $pluginLoader->getClassName('Slash_Entry');
     $this->_extensions['Slash_Entry'] = new $slashClass($entry, $entryKey, $type);
     $threadClass = $pluginLoader->getClassName('Thread_Entry');
     $this->_extensions['Thread_Entry'] = new $threadClass($entry, $entryKey, $type);
 }