summaryrefslogtreecommitdiff
path: root/vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomHelper.php
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2017-10-25 16:22:10 -0700
committerFrederic Guillot <fred@kanboard.net>2017-10-25 16:22:10 -0700
commit9e2b2a32fd0e967ad3184e9a5d091a29953acb91 (patch)
tree00822e24aa1110c73ca455a8d096ef296c008cbc /vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomHelper.php
parentc507c5416251c505cb3e088a03c6664bed73c812 (diff)
Include composer dependencies in repo
Diffstat (limited to 'vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomHelper.php')
-rw-r--r--vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomHelper.php139
1 files changed, 139 insertions, 0 deletions
diff --git a/vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomHelper.php b/vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomHelper.php
new file mode 100644
index 00000000..def6b0b9
--- /dev/null
+++ b/vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomHelper.php
@@ -0,0 +1,139 @@
+<?php
+
+namespace PicoFeed\Syndication;
+
+use DateTime;
+use DOMDocument;
+use DOMElement;
+
+/**
+ * Class AtomHelper
+ *
+ * @package PicoFeed\Syndication
+ * @author Frederic Guillot
+ */
+class AtomHelper
+{
+ /**
+ * @var DOMDocument
+ */
+ protected $document;
+
+ /**
+ * Constructor
+ *
+ * @param DOMDocument $document
+ */
+ public function __construct(DOMDocument $document)
+ {
+ $this->document = $document;
+ }
+
+ /**
+ * Build node
+ *
+ * @access public
+ * @param DOMElement $element
+ * @param string $tag
+ * @param string $value
+ * @return AtomHelper
+ */
+ public function buildNode(DOMElement $element, $tag, $value)
+ {
+ $node = $this->document->createElement($tag);
+ $node->appendChild($this->document->createTextNode($value));
+ $element->appendChild($node);
+ return $this;
+ }
+
+ /**
+ * Build title
+ *
+ * @access public
+ * @param DOMElement $element
+ * @param string $title
+ * @return AtomHelper
+ */
+ public function buildTitle(DOMElement $element, $title)
+ {
+ return $this->buildNode($element, 'title', $title);
+ }
+
+ /**
+ * Build id
+ *
+ * @access public
+ * @param DOMElement $element
+ * @param string $id
+ * @return AtomHelper
+ */
+ public function buildId(DOMElement $element, $id)
+ {
+ return $this->buildNode($element, 'id', $id);
+ }
+
+ /**
+ * Build date element
+ *
+ * @access public
+ * @param DOMElement $element
+ * @param DateTime $date
+ * @param string $type
+ * @return AtomHelper
+ */
+ public function buildDate(DOMElement $element, DateTime $date, $type = 'updated')
+ {
+ return $this->buildNode($element, $type, $date->format(DateTime::ATOM));
+ }
+
+ /**
+ * Build link element
+ *
+ * @access public
+ * @param DOMElement $element
+ * @param string $url
+ * @param string $rel
+ * @param string $type
+ * @return AtomHelper
+ */
+ public function buildLink(DOMElement $element, $url, $rel = 'alternate', $type = 'text/html')
+ {
+ $node = $this->document->createElement('link');
+ $node->setAttribute('rel', $rel);
+ $node->setAttribute('type', $type);
+ $node->setAttribute('href', $url);
+ $element->appendChild($node);
+
+ return $this;
+ }
+
+ /**
+ * Build author element
+ *
+ * @access public
+ * @param DOMElement $element
+ * @param string $authorName
+ * @param string $authorEmail
+ * @param string $authorUrl
+ * @return AtomHelper
+ */
+ public function buildAuthor(DOMElement $element, $authorName, $authorEmail, $authorUrl)
+ {
+ if (!empty($authorName)) {
+ $author = $this->document->createElement('author');
+ $this->buildNode($author, 'name', $authorName);
+
+ if (!empty($authorEmail)) {
+ $this->buildNode($author, 'email', $authorEmail);
+ }
+
+ if (!empty($authorUrl)) {
+ $this->buildNode($author, 'uri', $authorUrl);
+ }
+
+ $element->appendChild($author);
+ }
+
+ return $this;
+ }
+}