X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fatom10feed.php;h=2bba6d0a91474bf5ac7271c3cc35aa83b2574e2c;hb=7e65f4f6ea86124c074e72ea42c07cd6a99887a0;hp=5e17b20d3ab8816507ea4ebe96fb99786a97e6f3;hpb=3c61f45de1226b22eeb83bd1f6db01984f953737;p=quix0rs-gnu-social.git diff --git a/lib/atom10feed.php b/lib/atom10feed.php index 5e17b20d3a..2bba6d0a91 100644 --- a/lib/atom10feed.php +++ b/lib/atom10feed.php @@ -49,6 +49,8 @@ class Atom10FeedException extends Exception class Atom10Feed extends XMLStringer { public $xw; + + // @fixme most of these should probably be read-only properties private $namespaces; private $authors; private $subject; @@ -57,10 +59,12 @@ class Atom10Feed extends XMLStringer private $generator; private $icon; private $links; - private $logo; + private $selfLink; + private $selfLinkType; + public $logo; private $rights; - private $subtitle; - private $title; + public $subtitle; + public $title; private $published; private $updated; private $entries; @@ -105,15 +109,16 @@ class Atom10Feed extends XMLStringer $xs->element('name', null, $name); } else { throw new Atom10FeedException( - 'author element must contain a name element.' + // TRANS: Atom feed exception thrown when an author element does not contain a name element. + _('Author element must contain a name element.') ); } - if (!is_null($uri)) { + if (isset($uri)) { $xs->element('uri', null, $uri); } - if (!is_null(email)) { + if (isset($email)) { $xs->element('email', null, $email); } @@ -141,18 +146,6 @@ class Atom10Feed extends XMLStringer } } - /** - * Add a activity feed subject via raw XML string - * - * @param string $xmlSubject An XML string representation of the subject - * - * @return void - */ - function setActivitySubject($xmlSubject) - { - $this->subject = $xmlSubject; - } - function getNamespaces() { return $this->namespaces; @@ -160,7 +153,7 @@ class Atom10Feed extends XMLStringer function initFeed() { - $this->xw->startDocument('1.0', 'UTF-8'); + $this->startXML(); $commonAttrs = array('xml:lang' => 'en-US'); foreach ($this->namespaces as $prefix => $uri) { if ($prefix == '') { @@ -172,6 +165,14 @@ class Atom10Feed extends XMLStringer } $this->elementStart('feed', $commonAttrs); + $this->element( + 'generator', array( + 'uri' => 'https://gnu.io/social', + 'version' => GNUSOCIAL_VERSION + ), + 'GNU social' + ); + $this->element('id', null, $this->id); $this->element('title', null, $this->title); $this->element('subtitle', null, $this->subtitle); @@ -184,6 +185,10 @@ class Atom10Feed extends XMLStringer $this->renderAuthors(); + if ($this->selfLink) { + $this->addLink($this->selfLink, array('rel' => 'self', + 'type' => $this->selfLinkType)); + } $this->renderLinks(); } @@ -253,6 +258,12 @@ class Atom10Feed extends XMLStringer $this->id = $id; } + function setSelfLink($url, $type='application/atom+xml') + { + $this->selfLink = $url; + $this->selfLinkType = $type; + } + function setTitle($title) { $this->title = $title; @@ -301,5 +312,4 @@ class Atom10Feed extends XMLStringer array_push($this->links, $attrs); } - }