Chris@0: data['author'])) { Chris@0: return $this->data['author']; Chris@0: } Chris@0: Chris@0: $author = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:author)'); Chris@0: Chris@2: if (! $author) { Chris@0: $author = null; Chris@0: } Chris@0: Chris@0: $this->data['author'] = $author; Chris@0: Chris@0: return $this->data['author']; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Get the entry block Chris@0: * Chris@0: * @return string Chris@0: */ Chris@0: public function getBlock() Chris@0: { Chris@0: if (isset($this->data['block'])) { Chris@0: return $this->data['block']; Chris@0: } Chris@0: Chris@0: $block = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:block)'); Chris@0: Chris@2: if (! $block) { Chris@0: $block = null; Chris@0: } Chris@0: Chris@0: $this->data['block'] = $block; Chris@0: Chris@0: return $this->data['block']; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Get the entry duration Chris@0: * Chris@0: * @return string Chris@0: */ Chris@0: public function getDuration() Chris@0: { Chris@0: if (isset($this->data['duration'])) { Chris@0: return $this->data['duration']; Chris@0: } Chris@0: Chris@0: $duration = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:duration)'); Chris@0: Chris@2: if (! $duration) { Chris@0: $duration = null; Chris@0: } Chris@0: Chris@0: $this->data['duration'] = $duration; Chris@0: Chris@0: return $this->data['duration']; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Get the entry explicit Chris@0: * Chris@0: * @return string Chris@0: */ Chris@0: public function getExplicit() Chris@0: { Chris@0: if (isset($this->data['explicit'])) { Chris@0: return $this->data['explicit']; Chris@0: } Chris@0: Chris@0: $explicit = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:explicit)'); Chris@0: Chris@2: if (! $explicit) { Chris@0: $explicit = null; Chris@0: } Chris@0: Chris@0: $this->data['explicit'] = $explicit; Chris@0: Chris@0: return $this->data['explicit']; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Get the entry keywords Chris@0: * Chris@2: * @deprecated since 2.10.0; itunes:keywords is no longer part of the Chris@2: * iTunes podcast RSS specification. Chris@0: * @return string Chris@0: */ Chris@0: public function getKeywords() Chris@0: { Chris@2: trigger_error( Chris@2: 'itunes:keywords has been deprecated in the iTunes podcast RSS specification,' Chris@2: . ' and should not be relied on.', Chris@2: \E_USER_DEPRECATED Chris@2: ); Chris@2: Chris@0: if (isset($this->data['keywords'])) { Chris@0: return $this->data['keywords']; Chris@0: } Chris@0: Chris@0: $keywords = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:keywords)'); Chris@0: Chris@2: if (! $keywords) { Chris@0: $keywords = null; Chris@0: } Chris@0: Chris@0: $this->data['keywords'] = $keywords; Chris@0: Chris@0: return $this->data['keywords']; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Get the entry subtitle Chris@0: * Chris@0: * @return string Chris@0: */ Chris@0: public function getSubtitle() Chris@0: { Chris@0: if (isset($this->data['subtitle'])) { Chris@0: return $this->data['subtitle']; Chris@0: } Chris@0: Chris@0: $subtitle = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:subtitle)'); Chris@0: Chris@2: if (! $subtitle) { Chris@0: $subtitle = null; Chris@0: } Chris@0: Chris@0: $this->data['subtitle'] = $subtitle; Chris@0: Chris@0: return $this->data['subtitle']; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Get the entry summary Chris@0: * Chris@0: * @return string Chris@0: */ Chris@0: public function getSummary() Chris@0: { Chris@0: if (isset($this->data['summary'])) { Chris@0: return $this->data['summary']; Chris@0: } Chris@0: Chris@0: $summary = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:summary)'); Chris@0: Chris@2: if (! $summary) { Chris@0: $summary = null; Chris@0: } Chris@0: Chris@0: $this->data['summary'] = $summary; Chris@0: Chris@0: return $this->data['summary']; Chris@0: } Chris@0: Chris@0: /** Chris@2: * Get the entry image Chris@2: * Chris@2: * @return string Chris@2: */ Chris@2: public function getItunesImage() Chris@2: { Chris@2: if (isset($this->data['image'])) { Chris@2: return $this->data['image']; Chris@2: } Chris@2: Chris@2: $image = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:image/@href)'); Chris@2: Chris@2: if (! $image) { Chris@2: $image = null; Chris@2: } Chris@2: Chris@2: $this->data['image'] = $image; Chris@2: Chris@2: return $this->data['image']; Chris@2: } Chris@2: Chris@2: /** Chris@2: * Get the episode number Chris@2: * Chris@2: * @return null|int Chris@2: */ Chris@2: public function getEpisode() Chris@2: { Chris@2: if (isset($this->data['episode'])) { Chris@2: return $this->data['episode']; Chris@2: } Chris@2: Chris@2: $episode = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:episode)'); Chris@2: Chris@2: if (! $episode) { Chris@2: $episode = null; Chris@2: } Chris@2: Chris@2: $this->data['episode'] = null === $episode ? $episode : (int) $episode; Chris@2: Chris@2: return $this->data['episode']; Chris@2: } Chris@2: Chris@2: /** Chris@2: * Get the episode number Chris@2: * Chris@2: * @return string One of "full", "trailer", or "bonus"; defaults to "full". Chris@2: */ Chris@2: public function getEpisodeType() Chris@2: { Chris@2: if (isset($this->data['episodeType'])) { Chris@2: return $this->data['episodeType']; Chris@2: } Chris@2: Chris@2: $type = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:episodeType)'); Chris@2: Chris@2: if (! $type) { Chris@2: $type = 'full'; Chris@2: } Chris@2: Chris@2: $this->data['episodeType'] = (string) $type; Chris@2: Chris@2: return $this->data['episodeType']; Chris@2: } Chris@2: Chris@2: /** Chris@2: * Is the episode closed captioned? Chris@2: * Chris@2: * Returns true only if itunes:isClosedCaptioned has the value 'Yes'. Chris@2: * Chris@2: * @return bool Chris@2: */ Chris@2: public function isClosedCaptioned() Chris@2: { Chris@2: if (isset($this->data['isClosedCaptioned'])) { Chris@2: return $this->data['isClosedCaptioned']; Chris@2: } Chris@2: Chris@2: $status = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:isClosedCaptioned)'); Chris@2: Chris@2: $this->data['isClosedCaptioned'] = $status === 'Yes'; Chris@2: Chris@2: return $this->data['isClosedCaptioned']; Chris@2: } Chris@2: Chris@2: /** Chris@2: * Get the season number Chris@2: * Chris@2: * @return null|int Chris@2: */ Chris@2: public function getSeason() Chris@2: { Chris@2: if (isset($this->data['season'])) { Chris@2: return $this->data['season']; Chris@2: } Chris@2: Chris@2: $season = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:season)'); Chris@2: Chris@2: if (! $season) { Chris@2: $season = null; Chris@2: } Chris@2: Chris@2: $this->data['season'] = null === $season ? $season : (int) $season; Chris@2: Chris@2: return $this->data['season']; Chris@2: } Chris@2: Chris@2: /** Chris@0: * Register iTunes namespace Chris@0: * Chris@0: */ Chris@0: protected function registerNamespaces() Chris@0: { Chris@0: $this->xpath->registerNamespace('itunes', 'http://www.itunes.com/dtds/podcast-1.0.dtd'); Chris@0: } Chris@0: }