]> git.wh0rd.org - tt-rss.git/commitdiff
move common methods to feeditem_common
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Wed, 1 May 2013 17:06:48 +0000 (21:06 +0400)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Wed, 1 May 2013 17:06:48 +0000 (21:06 +0400)
classes/feeditem.php
classes/feeditem/atom.php
classes/feeditem/common.php [new file with mode: 0644]
classes/feeditem/rss.php

index cc39fcee712db6c188dcac826363f501cca4e36e..e64a13fdc98556b8372a43a227e39f1a29d5f0f7 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-class FeedItem {
+abstract class FeedItem {
        abstract function get_id();
        abstract function get_date();
        abstract function get_link();
index 1a9db902065c3f50a66de975822a649466dd2b26..df1c31d99487816612e63a3697c1d951e0f3f972 100644 (file)
@@ -1,13 +1,5 @@
 <?php
-class FeedItem_Atom {
-       private $elem;
-       private $xpath;
-
-       function __construct($elem, $doc, $xpath) {
-               $this->elem = $elem;
-               $this->xpath = $xpath;
-       }
-
+class FeedItem_Atom extends FeedItem_Common {
        function get_id() {
                $id = $this->elem->getElementsByTagName("id")->item(0);
 
@@ -60,19 +52,6 @@ class FeedItem_Atom {
                }
        }
 
-       // todo
-       function get_comments_url() {
-
-       }
-
-       function get_comments_count() {
-               $comments = $this->xpath->query("slash:comments", $this->elem)->item(0);
-
-               if ($comments) {
-                       return $comments->nodeValue;
-               }
-       }
-
        function get_categories() {
                $categories = $this->elem->getElementsByTagName("category");
                $cats = array();
@@ -125,26 +104,5 @@ class FeedItem_Atom {
                return $encs;
        }
 
-       function get_author() {
-               $author = $this->elem->getElementsByTagName("author")->item(0);
-
-               if ($author) {
-                       $name = $author->getElementsByTagName("name")->item(0);
-
-                       if ($name) return $name->nodeValue;
-
-                       $email = $author->getElementsByTagName("email")->item(0);
-
-                       if ($email) return $email->nodeValue;
-
-               }
-
-               $author = $this->xpath->query("dc:creator", $this->elem)->item(0);
-
-               if ($author) {
-                       return $author->nodeValue;
-               }
-
-       }
 }
 ?>
diff --git a/classes/feeditem/common.php b/classes/feeditem/common.php
new file mode 100644 (file)
index 0000000..fca9433
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+abstract class FeedItem_Common extends FeedItem {
+       protected $elem;
+       protected $xpath;
+       protected $doc;
+
+       function __construct($elem, $doc, $xpath) {
+               $this->elem = $elem;
+               $this->xpath = $xpath;
+               $this->doc = $doc;
+       }
+
+       function get_author() {
+               $author = $this->elem->getElementsByTagName("author")->item(0);
+
+               if ($author) {
+                       $name = $author->getElementsByTagName("name")->item(0);
+
+                       if ($name) return $name->nodeValue;
+
+                       $email = $author->getElementsByTagName("email")->item(0);
+
+                       if ($email) return $email->nodeValue;
+               }
+
+               $author = $this->xpath->query("dc:creator", $this->elem)->item(0);
+
+               if ($author) {
+                       return $author->nodeValue;
+               }
+       }
+
+       // todo
+       function get_comments_url() {
+
+       }
+
+       function get_comments_count() {
+               $comments = $this->xpath->query("slash:comments", $this->elem)->item(0);
+
+               if ($comments) {
+                       return $comments->nodeValue;
+               }
+       }
+
+
+}
+?>
index 9e54a9c092d726799573421e48e8b7a0718c4519..29c8cb6b43f6b2aafeabbc6103511c66ab92d35a 100644 (file)
@@ -1,13 +1,5 @@
 <?php
-class FeedItem_RSS {
-       private $elem;
-       private $xpath;
-
-       function __construct($elem, $doc, $xpath) {
-               $this->elem = $elem;
-               $this->xpath = $xpath;
-       }
-
+class FeedItem_RSS extends FeedItem_Common {
        function get_id() {
                $id = $this->elem->getElementsByTagName("guid")->item(0);
 
@@ -58,19 +50,6 @@ class FeedItem_RSS {
                }
        }
 
-       // todo
-       function get_comments_url() {
-
-       }
-
-       function get_comments_count() {
-               $comments = $this->xpath->query("slash:comments", $this->elem)->item(0);
-
-               if ($comments) {
-                       return $comments->nodeValue;
-               }
-       }
-
        function get_categories() {
                $categories = $this->elem->getElementsByTagName("category");
                $cats = array();
@@ -118,25 +97,5 @@ class FeedItem_RSS {
                return $encs;
        }
 
-       function get_author() {
-               $author = $this->elem->getElementsByTagName("author")->item(0);
-
-               if ($author) {
-                       $name = $author->getElementsByTagName("name")->item(0);
-
-                       if ($name) return $name->nodeValue;
-
-                       $email = $author->getElementsByTagName("email")->item(0);
-
-                       if ($email) return $email->nodeValue;
-               }
-
-               $author = $this->xpath->query("dc:creator", $this->elem)->item(0);
-
-               if ($author) {
-                       return $author->nodeValue;
-               }
-
-       }
 }
 ?>