diff options
Diffstat (limited to 'vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomItemBuilder.php')
-rw-r--r-- | vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomItemBuilder.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomItemBuilder.php b/vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomItemBuilder.php new file mode 100644 index 00000000..dfdfe68d --- /dev/null +++ b/vendor/miniflux/picofeed/lib/PicoFeed/Syndication/AtomItemBuilder.php @@ -0,0 +1,63 @@ +<?php + +namespace PicoFeed\Syndication; + +use DOMElement; + +/** + * Atom Item Builder + * + * @package PicoFeed\Syndication + * @author Frederic Guillot + */ +class AtomItemBuilder extends ItemBuilder +{ + /** + * @var DOMElement + */ + protected $itemElement; + + /** + * @var AtomHelper + */ + protected $helper; + + /** + * Build item + * + * @access public + * @return DOMElement + */ + public function build() + { + $this->itemElement = $this->feedBuilder->getDocument()->createElement('entry'); + $this->helper = new AtomHelper($this->feedBuilder->getDocument()); + + if (!empty($this->itemId)) { + $this->helper->buildId($this->itemElement, $this->itemId); + } else { + $this->helper->buildId($this->itemElement, $this->itemUrl); + } + + $this->helper + ->buildTitle($this->itemElement, $this->itemTitle) + ->buildLink($this->itemElement, $this->itemUrl) + ->buildDate($this->itemElement, $this->itemUpdatedDate, 'updated') + ->buildDate($this->itemElement, $this->itemPublishedDate, 'published') + ->buildAuthor($this->itemElement, $this->authorName, $this->authorEmail, $this->authorUrl) + ; + + if (!empty($this->itemSummary)) { + $this->helper->buildNode($this->itemElement, 'summary', $this->itemSummary); + } + + if (!empty($this->itemContent)) { + $node = $this->feedBuilder->getDocument()->createElement('content'); + $node->setAttribute('type', 'html'); + $node->appendChild($this->feedBuilder->getDocument()->createCDATASection($this->itemContent)); + $this->itemElement->appendChild($node); + } + + return $this->itemElement; + } +} |