diff options
author | Andrew Dolgov <[email protected]> | 2013-11-18 00:10:42 -0800 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-11-18 00:10:42 -0800 |
commit | 7d36c24c20ae955154ff741d5b9dd94dc8104a80 (patch) | |
tree | 5698091a65b17342335d9938b4e7f8886f82eb61 /classes | |
parent | 15d8bd7dbfaad912a1941cfefe6f9c10fb15fc06 (diff) | |
parent | ed449a9aaa08d507b92dad934239f4c371f5ca3e (diff) |
Merge pull request #327 from lotrfan/media_group
Follow the spec for <media:group>s
Diffstat (limited to 'classes')
-rw-r--r-- | classes/feeditem/atom.php | 25 | ||||
-rw-r--r-- | classes/feeditem/rss.php | 25 |
2 files changed, 48 insertions, 2 deletions
diff --git a/classes/feeditem/atom.php b/classes/feeditem/atom.php index b7a228aed..5f0400fea 100644 --- a/classes/feeditem/atom.php +++ b/classes/feeditem/atom.php @@ -137,7 +137,7 @@ class FeedItem_Atom extends FeedItem_Common { } } - $enclosures = $this->xpath->query("media:content | media:group/media:content", $this->elem); + $enclosures = $this->xpath->query("media:content", $this->elem); foreach ($enclosures as $enclosure) { $enc = new FeedEnclosure(); @@ -152,6 +152,29 @@ class FeedItem_Atom extends FeedItem_Common { array_push($encs, $enc); } + + $enclosures = $this->xpath->query("media:group", $this->elem); + + foreach ($enclosures as $enclosure) { + $enc = new FeedEnclosure(); + + $content = $this->xpath->query("media:content", $enclosure)->item(0); + + $enc->type = $content->getAttribute("type"); + $enc->link = $content->getAttribute("url"); + $enc->length = $content->getAttribute("length"); + + $desc = $this->xpath->query("media:description", $content)->item(0); + if ($desc) { + $enc->title = strip_tags($desc->nodeValue); + } else { + $desc = $this->xpath->query("media:description", $enclosure)->item(0); + if ($desc) $enc->title = strip_tags($desc->nodeValue); + } + + array_push($encs, $enc); + } + return $encs; } diff --git a/classes/feeditem/rss.php b/classes/feeditem/rss.php index 1f59f0612..b5d9695e2 100644 --- a/classes/feeditem/rss.php +++ b/classes/feeditem/rss.php @@ -112,7 +112,7 @@ class FeedItem_RSS extends FeedItem_Common { array_push($encs, $enc); } - $enclosures = $this->xpath->query("media:content | media:group/media:content", $this->elem); + $enclosures = $this->xpath->query("media:content", $this->elem); foreach ($enclosures as $enclosure) { $enc = new FeedEnclosure(); @@ -127,6 +127,29 @@ class FeedItem_RSS extends FeedItem_Common { array_push($encs, $enc); } + + $enclosures = $this->xpath->query("media:group", $this->elem); + + foreach ($enclosures as $enclosure) { + $enc = new FeedEnclosure(); + + $content = $this->xpath->query("media:content", $enclosure)->item(0); + + $enc->type = $content->getAttribute("type"); + $enc->link = $content->getAttribute("url"); + $enc->length = $content->getAttribute("length"); + + $desc = $this->xpath->query("media:description", $content)->item(0); + if ($desc) { + $enc->title = strip_tags($desc->nodeValue); + } else { + $desc = $this->xpath->query("media:description", $enclosure)->item(0); + if ($desc) $enc->title = strip_tags($desc->nodeValue); + } + + array_push($encs, $enc); + } + return $encs; } |