annotate vendor/zendframework/zend-feed/src/Writer/Renderer/Entry/AtomDeleted.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 <?php
Chris@0 2 /**
Chris@0 3 * Zend Framework (http://framework.zend.com/)
Chris@0 4 *
Chris@0 5 * @link http://github.com/zendframework/zf2 for the canonical source repository
Chris@0 6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
Chris@0 7 * @license http://framework.zend.com/license/new-bsd New BSD License
Chris@0 8 */
Chris@0 9
Chris@0 10 namespace Zend\Feed\Writer\Renderer\Entry;
Chris@0 11
Chris@0 12 use DateTime;
Chris@0 13 use DOMDocument;
Chris@0 14 use DOMElement;
Chris@0 15 use Zend\Feed\Writer;
Chris@0 16 use Zend\Feed\Writer\Renderer;
Chris@0 17
Chris@0 18 /**
Chris@0 19 */
Chris@0 20 class AtomDeleted extends Renderer\AbstractRenderer implements Renderer\RendererInterface
Chris@0 21 {
Chris@0 22 /**
Chris@0 23 * Constructor
Chris@0 24 *
Chris@0 25 * @param Writer\Deleted $container
Chris@0 26 */
Chris@0 27 public function __construct(Writer\Deleted $container)
Chris@0 28 {
Chris@0 29 parent::__construct($container);
Chris@0 30 }
Chris@0 31
Chris@0 32 /**
Chris@0 33 * Render atom entry
Chris@0 34 *
Chris@17 35 * @return \Zend\Feed\Writer\Renderer\Entry\AtomDeleted
Chris@0 36 */
Chris@0 37 public function render()
Chris@0 38 {
Chris@0 39 $this->dom = new DOMDocument('1.0', $this->container->getEncoding());
Chris@0 40 $this->dom->formatOutput = true;
Chris@0 41 $entry = $this->dom->createElement('at:deleted-entry');
Chris@0 42 $this->dom->appendChild($entry);
Chris@0 43
Chris@0 44 $entry->setAttribute('ref', $this->container->getReference());
Chris@0 45 $entry->setAttribute('when', $this->container->getWhen()->format(DateTime::ATOM));
Chris@0 46
Chris@0 47 $this->_setBy($this->dom, $entry);
Chris@0 48 $this->_setComment($this->dom, $entry);
Chris@0 49
Chris@0 50 return $this;
Chris@0 51 }
Chris@0 52
Chris@0 53 /**
Chris@0 54 * Set tombstone comment
Chris@0 55 *
Chris@0 56 * @param DOMDocument $dom
Chris@0 57 * @param DOMElement $root
Chris@0 58 * @return void
Chris@0 59 */
Chris@12 60 // @codingStandardsIgnoreStart
Chris@0 61 protected function _setComment(DOMDocument $dom, DOMElement $root)
Chris@0 62 {
Chris@12 63 // @codingStandardsIgnoreEnd
Chris@12 64 if (! $this->getDataContainer()->getComment()) {
Chris@0 65 return;
Chris@0 66 }
Chris@0 67 $c = $dom->createElement('at:comment');
Chris@0 68 $root->appendChild($c);
Chris@0 69 $c->setAttribute('type', 'html');
Chris@0 70 $cdata = $dom->createCDATASection($this->getDataContainer()->getComment());
Chris@0 71 $c->appendChild($cdata);
Chris@0 72 }
Chris@0 73
Chris@0 74 /**
Chris@0 75 * Set entry authors
Chris@0 76 *
Chris@0 77 * @param DOMDocument $dom
Chris@0 78 * @param DOMElement $root
Chris@0 79 * @return void
Chris@0 80 */
Chris@12 81 // @codingStandardsIgnoreStart
Chris@0 82 protected function _setBy(DOMDocument $dom, DOMElement $root)
Chris@0 83 {
Chris@12 84 // @codingStandardsIgnoreEnd
Chris@0 85 $data = $this->container->getBy();
Chris@12 86 if ((! $data || empty($data))) {
Chris@0 87 return;
Chris@0 88 }
Chris@0 89 $author = $this->dom->createElement('at:by');
Chris@0 90 $name = $this->dom->createElement('name');
Chris@0 91 $author->appendChild($name);
Chris@0 92 $root->appendChild($author);
Chris@0 93 $text = $dom->createTextNode($data['name']);
Chris@0 94 $name->appendChild($text);
Chris@0 95 if (array_key_exists('email', $data)) {
Chris@0 96 $email = $this->dom->createElement('email');
Chris@0 97 $author->appendChild($email);
Chris@0 98 $text = $dom->createTextNode($data['email']);
Chris@0 99 $email->appendChild($text);
Chris@0 100 }
Chris@0 101 if (array_key_exists('uri', $data)) {
Chris@0 102 $uri = $this->dom->createElement('uri');
Chris@0 103 $author->appendChild($uri);
Chris@0 104 $text = $dom->createTextNode($data['uri']);
Chris@0 105 $uri->appendChild($text);
Chris@0 106 }
Chris@0 107 }
Chris@0 108 }