diff options
author | YoungMin Park <[email protected]> | 2014-11-04 11:49:43 +0900 |
---|---|---|
committer | YoungMin Park <[email protected]> | 2014-11-04 11:49:43 +0900 |
commit | a5bbb2bec133bdee08b361628f32430ae3884107 (patch) | |
tree | b203105149ec234ebe155d5718d2cbb6390b4a45 /classes/feeditem/common.php | |
parent | 12727ad17d125eb2f3f243231ccca1cb0a5a7b4b (diff) | |
parent | 2f43089de1ead3f164b8b31967d1abbb784319fa (diff) |
Merge pull request #1 from gothfox/master
Update from original
Diffstat (limited to 'classes/feeditem/common.php')
-rw-r--r-- | classes/feeditem/common.php | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/classes/feeditem/common.php b/classes/feeditem/common.php index 0787a42cb..80bebf8fb 100644 --- a/classes/feeditem/common.php +++ b/classes/feeditem/common.php @@ -8,6 +8,17 @@ abstract class FeedItem_Common extends FeedItem { $this->elem = $elem; $this->xpath = $xpath; $this->doc = $doc; + + try { + + $source = $elem->getElementsByTagName("source")->item(0); + + // we don't need <source> element + if ($source) + $elem->removeChild($source); + } catch (DOMException $e) { + // + } } function get_author() { @@ -33,13 +44,26 @@ abstract class FeedItem_Common extends FeedItem { } } - // todo function get_comments_url() { + //RSS only. Use a query here to avoid namespace clashes (e.g. with slash). + //might give a wrong result if a default namespace was declared (possible with XPath 2.0) + $com_url = $this->xpath->query("comments", $this->elem)->item(0); + + if($com_url) + return $com_url->nodeValue; + + //Atom Threading Extension (RFC 4685) stuff. Could be used in RSS feeds, so it's in common. + //'text/html' for type is too restrictive? + $com_url = $this->xpath->query("atom:link[@rel='replies' and contains(@type,'text/html')]/@href", $this->elem)->item(0); + if($com_url) + return $com_url->nodeValue; } function get_comments_count() { - $comments = $this->xpath->query("slash:comments", $this->elem)->item(0); + //also query for ATE stuff here + $query = "slash:comments|thread:total|atom:link[@rel='replies']/@thread:count"; + $comments = $this->xpath->query($query, $this->elem)->item(0); if ($comments) { return $comments->nodeValue; |