You are here

AtomDeleted.php in Zircon Profile 8.0

File

vendor/zendframework/zend-feed/src/Writer/Renderer/Entry/AtomDeleted.php
View source
<?php

/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link      http://github.com/zendframework/zf2 for the canonical source repository
 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
 * @license   http://framework.zend.com/license/new-bsd New BSD License
 */
namespace Zend\Feed\Writer\Renderer\Entry;

use DateTime;
use DOMDocument;
use DOMElement;
use Zend\Feed\Writer;
use Zend\Feed\Writer\Renderer;

/**
*/
class AtomDeleted extends Renderer\AbstractRenderer implements Renderer\RendererInterface {

  /**
   * Constructor
   *
   * @param  Writer\Deleted $container
   */
  public function __construct(Writer\Deleted $container) {
    parent::__construct($container);
  }

  /**
   * Render atom entry
   *
   * @return \Zend\Feed\Writer\Renderer\Entry\Atom
   */
  public function render() {
    $this->dom = new DOMDocument('1.0', $this->container
      ->getEncoding());
    $this->dom->formatOutput = true;
    $entry = $this->dom
      ->createElement('at:deleted-entry');
    $this->dom
      ->appendChild($entry);
    $entry
      ->setAttribute('ref', $this->container
      ->getReference());
    $entry
      ->setAttribute('when', $this->container
      ->getWhen()
      ->format(DateTime::ATOM));
    $this
      ->_setBy($this->dom, $entry);
    $this
      ->_setComment($this->dom, $entry);
    return $this;
  }

  /**
   * Set tombstone comment
   *
   * @param  DOMDocument $dom
   * @param  DOMElement $root
   * @return void
   */
  protected function _setComment(DOMDocument $dom, DOMElement $root) {
    if (!$this
      ->getDataContainer()
      ->getComment()) {
      return;
    }
    $c = $dom
      ->createElement('at:comment');
    $root
      ->appendChild($c);
    $c
      ->setAttribute('type', 'html');
    $cdata = $dom
      ->createCDATASection($this
      ->getDataContainer()
      ->getComment());
    $c
      ->appendChild($cdata);
  }

  /**
   * Set entry authors
   *
   * @param  DOMDocument $dom
   * @param  DOMElement $root
   * @return void
   */
  protected function _setBy(DOMDocument $dom, DOMElement $root) {
    $data = $this->container
      ->getBy();
    if (!$data || empty($data)) {
      return;
    }
    $author = $this->dom
      ->createElement('at:by');
    $name = $this->dom
      ->createElement('name');
    $author
      ->appendChild($name);
    $root
      ->appendChild($author);
    $text = $dom
      ->createTextNode($data['name']);
    $name
      ->appendChild($text);
    if (array_key_exists('email', $data)) {
      $email = $this->dom
        ->createElement('email');
      $author
        ->appendChild($email);
      $text = $dom
        ->createTextNode($data['email']);
      $email
        ->appendChild($text);
    }
    if (array_key_exists('uri', $data)) {
      $uri = $this->dom
        ->createElement('uri');
      $author
        ->appendChild($uri);
      $text = $dom
        ->createTextNode($data['uri']);
      $uri
        ->appendChild($text);
    }
  }

}

Classes

Namesort descending Description
AtomDeleted