summaryrefslogtreecommitdiff
path: root/classes/feeditem
diff options
context:
space:
mode:
authorJeffrey Tolar <[email protected]>2013-11-17 17:58:43 -0600
committerJeffrey Tolar <[email protected]>2013-11-17 17:58:43 -0600
commited449a9aaa08d507b92dad934239f4c371f5ca3e (patch)
tree5698091a65b17342335d9938b4e7f8886f82eb61 /classes/feeditem
parent15d8bd7dbfaad912a1941cfefe6f9c10fb15fc06 (diff)
Follow the spec for <media:group>s
Each <media:group> section specifies multiple representations of the same content.
Diffstat (limited to 'classes/feeditem')
-rw-r--r--classes/feeditem/atom.php25
-rw-r--r--classes/feeditem/rss.php25
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;
}