diff options
Diffstat (limited to '3rdparty/ZendFeed/Reader/Extension/CreativeCommons/Feed.php')
-rw-r--r-- | 3rdparty/ZendFeed/Reader/Extension/CreativeCommons/Feed.php | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/3rdparty/ZendFeed/Reader/Extension/CreativeCommons/Feed.php b/3rdparty/ZendFeed/Reader/Extension/CreativeCommons/Feed.php new file mode 100644 index 000000000..103bce7f9 --- /dev/null +++ b/3rdparty/ZendFeed/Reader/Extension/CreativeCommons/Feed.php @@ -0,0 +1,71 @@ +<?php +/** + * Zend Framework (http://framework.zend.com/) + * + * @link http://github.com/zendframework/zf2 for the canonical source repository + * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ + +namespace Zend\Feed\Reader\Extension\CreativeCommons; + +use Zend\Feed\Reader; +use Zend\Feed\Reader\Extension; + +class Feed extends Extension\AbstractFeed +{ + /** + * Get the entry license + * + * @param int $index + * @return string|null + */ + public function getLicense($index = 0) + { + $licenses = $this->getLicenses(); + + if (isset($licenses[$index])) { + return $licenses[$index]; + } + + return null; + } + + /** + * Get the entry licenses + * + * @return array + */ + public function getLicenses() + { + $name = 'licenses'; + if (array_key_exists($name, $this->data)) { + return $this->data[$name]; + } + + $licenses = array(); + $list = $this->xpath->evaluate('channel/cc:license'); + + if ($list->length) { + foreach ($list as $license) { + $licenses[] = $license->nodeValue; + } + + $licenses = array_unique($licenses); + } + + $this->data[$name] = $licenses; + + return $this->data[$name]; + } + + /** + * Register Creative Commons namespaces + * + * @return void + */ + protected function registerNamespaces() + { + $this->xpath->registerNamespace('cc', 'http://backend.userland.com/creativeCommonsRssModule'); + } +} |