1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?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;
- try {
- $source = $elem->getElementsByTagName("source")->item(0);
- // we don't need <source> element
- if ($source)
- $elem->removeChild($source);
- } catch (DOMException $e) {
- //
- }
- }
- 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;
- if ($author->nodeValue)
- return $author->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;
- }
- }
- }
- ?>
|