/** * Find the item enclosure * * @access public * @param SimpleXMLElement $entry Feed item * @param \PicoFeed\Item $item Item object * @param \PicoFeed\Feed $feed Feed object */ public function findItemEnclosure(SimpleXMLElement $entry, Item $item, Feed $feed) { foreach ($entry->link as $link) { if ((string) $link['rel'] === 'enclosure') { $item->enclosure_url = (string) $link['href']; $item->enclosure_type = (string) $link['type']; if (Filter::isRelativePath($item->enclosure_url)) { $item->enclosure_url = Filter::getAbsoluteUrl($item->enclosure_url, $feed->url); } break; } } }
public function testGetAbsoluteUrl() { $f = new Filter('', ''); $this->assertEquals('http://google.com/', $f->getAbsoluteUrl('/', 'http://google.com')); $this->assertEquals('https://google.com/boo', $f->getAbsoluteUrl('boo', 'https://google.com')); $this->assertEquals('http://google.com/', $f->getAbsoluteUrl('/', 'google.com')); $this->assertEquals('http://google.com/bla', $f->getAbsoluteUrl('bla', 'google.com')); $this->assertEquals('http://google.com/../bla', $f->getAbsoluteUrl('../bla', 'google.com')); $this->assertEquals('', $f->getAbsoluteUrl('../bla', '')); }
/** * Find the item enclosure * * @access public * @param SimpleXMLElement $entry Feed item * @param \PicoFeed\Item $item Item object * @param \PicoFeed\Feed $feed Feed object */ public function findItemEnclosure(SimpleXMLElement $entry, Item $item, Feed $feed) { if (isset($entry->enclosure)) { $item->enclosure_url = $this->getNamespaceValue($entry->enclosure, $this->namespaces, 'origEnclosureLink'); if (empty($item->enclosure_url)) { $item->enclosure_url = isset($entry->enclosure['url']) ? (string) $entry->enclosure['url'] : ''; } $item->enclosure_type = isset($entry->enclosure['type']) ? (string) $entry->enclosure['type'] : ''; if (Filter::isRelativePath($item->enclosure_url)) { $item->enclosure_url = Filter::getAbsoluteUrl($item->enclosure_url, $feed->url); } } }