Overview

Namespaces

  • Alpha
    • Controller
      • Front
    • Exception
    • Model
      • Type
    • Task
    • Util
      • Backup
      • Cache
      • Code
        • Highlight
        • Metric
      • Config
      • Convertor
      • Email
      • Extension
      • Feed
      • File
      • Graph
      • Helper
      • Http
        • Filter
        • Session
      • Image
      • Logging
      • Search
      • Security
    • View
      • Renderer
        • Html
        • Json
      • Widget

Classes

  • Atom
  • Feed
  • RSS
  • RSS2
  • Overview
  • Namespace
  • Class
  • Tree
  1: <?php
  2: 
  3: namespace Alpha\Util\Feed;
  4: 
  5: /**
  6:  * RSS 1.0 class for synication.
  7:  *
  8:  * @since 1.0
  9:  *
 10:  * @author John Collins <dev@alphaframework.org>
 11:  * @license http://www.opensource.org/licenses/bsd-license.php The BSD License
 12:  * @copyright Copyright (c) 2015, John Collins (founder of Alpha Framework).
 13:  * All rights reserved.
 14:  *
 15:  * <pre>
 16:  * Redistribution and use in source and binary forms, with or
 17:  * without modification, are permitted provided that the
 18:  * following conditions are met:
 19:  *
 20:  * * Redistributions of source code must retain the above
 21:  *   copyright notice, this list of conditions and the
 22:  *   following disclaimer.
 23:  * * Redistributions in binary form must reproduce the above
 24:  *   copyright notice, this list of conditions and the
 25:  *   following disclaimer in the documentation and/or other
 26:  *   materials provided with the distribution.
 27:  * * Neither the name of the Alpha Framework nor the names
 28:  *   of its contributors may be used to endorse or promote
 29:  *   products derived from this software without specific
 30:  *   prior written permission.
 31:  *
 32:  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 33:  * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 34:  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 35:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 36:  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
 37:  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 38:  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 39:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 40:  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 41:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 42:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 43:  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 44:  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 45:  * </pre>
 46:  */
 47: class RSS extends Feed
 48: {
 49:     /**
 50:      * The XML namespace.
 51:      *
 52:      * @var string
 53:      *
 54:      * @since 1.0
 55:      */
 56:     protected $nameSpace = 'http://purl.org/rss/1.0/';
 57: 
 58:     /**
 59:      * The RDF namespace.
 60:      *
 61:      * @var string
 62:      *
 63:      * @since 1.0
 64:      */
 65:     private $rdfns = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
 66: 
 67:     /**
 68:      * The actual root tag used in each feed type.
 69:      *
 70:      * @var string
 71:      *
 72:      * @since 1.0
 73:      */
 74:     protected $rootTag = '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" />';
 75: 
 76:     /**
 77:      * Add a URL to feed item.
 78:      *
 79:      * @param $url
 80:      *
 81:      * @since 1.0
 82:      */
 83:     private function addToItems($url)
 84:     {
 85:         if ($this->items == null) {
 86:             $container = $this->createFeedElement('items');
 87:             $this->root->appendChild($container);
 88:             $this->items = $this->rssDoc->createElementNS($this->rdfns, 'Seq');
 89:             $container->appendChild($this->items);
 90:         }
 91: 
 92:         $item = $this->rssDoc->createElementNS($this->rdfns, 'li');
 93:         $this->items->appendChild($item);
 94:         $item->setAttribute('resource', $url);
 95:     }
 96: 
 97:     /**
 98:      * {@inheritdoc}
 99:      */
100:     protected function addItem($title, $link, $description = null, $pubDate = null, $id = null)
101:     {
102:         parent::addItem($title, $link, $description, $pubDate, $id);
103:         $this->addToItems($link);
104:     }
105: 
106:     /**
107:      * {@inheritdoc}
108:      */
109:     protected function createRSSNode($type, $parent, $title, $url, $description, $pubDate = null)
110:     {
111:         $parent->setAttributeNS($this->rdfns, 'rdf:about', $url);
112:         parent::createRSSNode($type, $parent, $title, $url, $description, $pubDate);
113:     }
114: }
115: 
Alpha Framework 2.0.4 API Documentation API documentation generated by ApiGen 2.8.0