X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fzendframework%2Fzend-feed%2Fsrc%2FReader%2FExtension%2FPodcast%2FFeed.php;fp=vendor%2Fzendframework%2Fzend-feed%2Fsrc%2FReader%2FExtension%2FPodcast%2FFeed.php;h=d2d11cb4bdffadf0b854a07db7dd21d6bfb55518;hp=0000000000000000000000000000000000000000;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad diff --git a/vendor/zendframework/zend-feed/src/Reader/Extension/Podcast/Feed.php b/vendor/zendframework/zend-feed/src/Reader/Extension/Podcast/Feed.php new file mode 100644 index 000000000..d2d11cb4b --- /dev/null +++ b/vendor/zendframework/zend-feed/src/Reader/Extension/Podcast/Feed.php @@ -0,0 +1,276 @@ +data['author'])) { + return $this->data['author']; + } + + $author = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:author)'); + + if (! $author) { + $author = null; + } + + $this->data['author'] = $author; + + return $this->data['author']; + } + + /** + * Get the entry block + * + * @return string + */ + public function getBlock() + { + if (isset($this->data['block'])) { + return $this->data['block']; + } + + $block = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:block)'); + + if (! $block) { + $block = null; + } + + $this->data['block'] = $block; + + return $this->data['block']; + } + + /** + * Get the entry category + * + * @return array|null + */ + public function getItunesCategories() + { + if (isset($this->data['categories'])) { + return $this->data['categories']; + } + + $categoryList = $this->xpath->query($this->getXpathPrefix() . '/itunes:category'); + + $categories = []; + + if ($categoryList->length > 0) { + foreach ($categoryList as $node) { + $children = null; + + if ($node->childNodes->length > 0) { + $children = []; + + foreach ($node->childNodes as $childNode) { + if (! ($childNode instanceof DOMText)) { + $children[$childNode->getAttribute('text')] = null; + } + } + } + + $categories[$node->getAttribute('text')] = $children; + } + } + + if (! $categories) { + $categories = null; + } + + $this->data['categories'] = $categories; + + return $this->data['categories']; + } + + /** + * Get the entry explicit + * + * @return string + */ + public function getExplicit() + { + if (isset($this->data['explicit'])) { + return $this->data['explicit']; + } + + $explicit = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:explicit)'); + + if (! $explicit) { + $explicit = null; + } + + $this->data['explicit'] = $explicit; + + return $this->data['explicit']; + } + + /** + * Get the entry image + * + * @return string + */ + public function getItunesImage() + { + if (isset($this->data['image'])) { + return $this->data['image']; + } + + $image = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:image/@href)'); + + if (! $image) { + $image = null; + } + + $this->data['image'] = $image; + + return $this->data['image']; + } + + /** + * Get the entry keywords + * + * @return string + */ + public function getKeywords() + { + if (isset($this->data['keywords'])) { + return $this->data['keywords']; + } + + $keywords = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:keywords)'); + + if (! $keywords) { + $keywords = null; + } + + $this->data['keywords'] = $keywords; + + return $this->data['keywords']; + } + + /** + * Get the entry's new feed url + * + * @return string + */ + public function getNewFeedUrl() + { + if (isset($this->data['new-feed-url'])) { + return $this->data['new-feed-url']; + } + + $newFeedUrl = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:new-feed-url)'); + + if (! $newFeedUrl) { + $newFeedUrl = null; + } + + $this->data['new-feed-url'] = $newFeedUrl; + + return $this->data['new-feed-url']; + } + + /** + * Get the entry owner + * + * @return string + */ + public function getOwner() + { + if (isset($this->data['owner'])) { + return $this->data['owner']; + } + + $owner = null; + + $email = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:owner/itunes:email)'); + $name = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:owner/itunes:name)'); + + if (! empty($email)) { + $owner = $email . (empty($name) ? '' : ' (' . $name . ')'); + } elseif (! empty($name)) { + $owner = $name; + } + + if (! $owner) { + $owner = null; + } + + $this->data['owner'] = $owner; + + return $this->data['owner']; + } + + /** + * Get the entry subtitle + * + * @return string + */ + public function getSubtitle() + { + if (isset($this->data['subtitle'])) { + return $this->data['subtitle']; + } + + $subtitle = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:subtitle)'); + + if (! $subtitle) { + $subtitle = null; + } + + $this->data['subtitle'] = $subtitle; + + return $this->data['subtitle']; + } + + /** + * Get the entry summary + * + * @return string + */ + public function getSummary() + { + if (isset($this->data['summary'])) { + return $this->data['summary']; + } + + $summary = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:summary)'); + + if (! $summary) { + $summary = null; + } + + $this->data['summary'] = $summary; + + return $this->data['summary']; + } + + /** + * Register iTunes namespace + * + */ + protected function registerNamespaces() + { + $this->xpath->registerNamespace('itunes', 'http://www.itunes.com/dtds/podcast-1.0.dtd'); + } +}