]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/FeedSub/extlib/XML/Feed/Parser/RSS09.php
First steps on converting FeedSub into the pub/sub basis for OStatus communications:
[quix0rs-gnu-social.git] / plugins / FeedSub / extlib / XML / Feed / Parser / RSS09.php
diff --git a/plugins/FeedSub/extlib/XML/Feed/Parser/RSS09.php b/plugins/FeedSub/extlib/XML/Feed/Parser/RSS09.php
deleted file mode 100755 (executable)
index 07f38f9..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * RSS0.9 class for XML_Feed_Parser
- *
- * PHP versions 5
- *
- * LICENSE: This source file is subject to version 3.0 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category   XML
- * @package    XML_Feed_Parser
- * @author     James Stewart <james@jystewart.net>
- * @copyright  2005 James Stewart <james@jystewart.net>
- * @license    http://www.gnu.org/copyleft/lesser.html  GNU LGPL 2.1
- * @version    CVS: $Id: RSS09.php,v 1.5 2006/07/26 21:18:46 jystewart Exp $
- * @link       http://pear.php.net/package/XML_Feed_Parser/
- */
-
-/**
- * This class handles RSS0.9 feeds.
- * 
- * @author    James Stewart <james@jystewart.net>
- * @version    Release: 1.0.3
- * @package XML_Feed_Parser
- * @todo    Find a Relax NG URI we can use
- */
-class XML_Feed_Parser_RSS09 extends XML_Feed_Parser_Type
-{
-    /**
-     * The URI of the RelaxNG schema used to (optionally) validate the feed 
-     * @var string
-     */
-    private $relax = '';
-
-    /**
-     * We're likely to use XPath, so let's keep it global
-     * @var DOMXPath
-     */
-    protected $xpath;
-
-    /**
-     * The feed type we are parsing 
-     * @var string
-     */
-    public $version = 'RSS 0.9';
-
-    /**
-     * The class used to represent individual items 
-     * @var string
-     */
-    protected $itemClass = 'XML_Feed_Parser_RSS09Element';
-    
-    /**
-     * The element containing entries 
-     * @var string
-     */
-    protected $itemElement = 'item';
-
-    /**
-     * Here we map those elements we're not going to handle individually
-     * to the constructs they are. The optional second parameter in the array
-     * tells the parser whether to 'fall back' (not apt. at the feed level) or
-     * fail if the element is missing. If the parameter is not set, the function
-     * will simply return false and leave it to the client to decide what to do.
-     * @var array
-     */
-    protected $map = array(
-        'title' => array('Text'),
-        'link' => array('Text'),
-        'description' => array('Text'),
-        'image' => array('Image'),
-        'textinput' => array('TextInput'));
-
-    /**
-     * Here we map some elements to their atom equivalents. This is going to be
-     * quite tricky to pull off effectively (and some users' methods may vary)
-     * but is worth trying. The key is the atom version, the value is RSS2.
-     * @var array
-     */
-    protected $compatMap = array(
-        'title' => array('title'),
-        'link' => array('link'),
-        'subtitle' => array('description'));
-
-    /**
-     * We will be working with multiple namespaces and it is useful to 
-     * keep them together 
-     * @var array
-     */
-    protected $namespaces = array(
-        'rdf' => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
-
-    /**
-     * Our constructor does nothing more than its parent.
-     * 
-     * @todo    RelaxNG validation
-     * @param    DOMDocument    $xml    A DOM object representing the feed
-     * @param    bool (optional) $string    Whether or not to validate this feed
-     */
-    function __construct(DOMDocument $model, $strict = false)
-    {
-        $this->model = $model;
-
-        $this->xpath = new DOMXPath($model);
-        foreach ($this->namespaces as $key => $value) {
-            $this->xpath->registerNamespace($key, $value);
-        }            
-        $this->numberEntries = $this->count('item');
-    }
-
-    /**
-     * Included for compatibility -- will not work with RSS 0.9
-     *
-     * This is not something that will work with RSS0.9 as it does not have
-     * clear restrictions on the global uniqueness of IDs.
-     *
-     * @param    string    $id    any valid ID.
-     * @return    false
-     */
-    function getEntryById($id)
-    {
-        return false;        
-    }
-
-    /**
-     * Get details of the image associated with the feed.
-     *
-     * @return  array|false an array simply containing the child elements
-     */
-    protected function getImage()
-    {
-        $images = $this->model->getElementsByTagName('image');
-        if ($images->length > 0) {
-            $image = $images->item(0);
-            $details = array();
-            if ($image->hasChildNodes()) {
-                $details = array(
-                    'title' => $image->getElementsByTagName('title')->item(0)->value,
-                    'link' => $image->getElementsByTagName('link')->item(0)->value,
-                    'url' => $image->getElementsByTagName('url')->item(0)->value);
-            } else {
-                $details = array('title' => false,
-                    'link' => false,
-                    'url' => $image->attributes->getNamedItem('resource')->nodeValue);
-            }
-            $details = array_merge($details, 
-                array('description' => false, 'height' => false, 'width' => false));
-            if (! empty($details)) {
-                return $details;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * The textinput element is little used, but in the interests of
-     * completeness we will support it.
-     *
-     * @return  array|false
-     */
-    protected function getTextInput()
-    {
-        $inputs = $this->model->getElementsByTagName('textinput');
-        if ($inputs->length > 0) {
-            $input = $inputs->item(0);
-            $results = array();
-            $results['title'] = isset(
-                $input->getElementsByTagName('title')->item(0)->value) ? 
-                $input->getElementsByTagName('title')->item(0)->value : null;
-            $results['description'] = isset(
-                $input->getElementsByTagName('description')->item(0)->value) ? 
-                $input->getElementsByTagName('description')->item(0)->value : null;
-            $results['name'] = isset(
-                $input->getElementsByTagName('name')->item(0)->value) ? 
-                $input->getElementsByTagName('name')->item(0)->value : null;
-            $results['link'] = isset(
-                   $input->getElementsByTagName('link')->item(0)->value) ? 
-                   $input->getElementsByTagName('link')->item(0)->value : null;
-            if (empty($results['link']) && 
-                $input->attributes->getNamedItem('resource')) {
-                $results['link'] = $input->attributes->getNamedItem('resource')->nodeValue;
-            }
-            if (! empty($results)) {
-                return $results;
-            }
-        }
-        return false;
-    }
-    
-    /**
-     * Get details of a link from the feed.
-     *
-     * In RSS1 a link is a text element but in order to ensure that we resolve
-     * URLs properly we have a special function for them.
-     *
-     * @return  string
-     */
-    function getLink($offset = 0, $attribute = 'href', $params = false)
-    {
-        $links = $this->model->getElementsByTagName('link');
-        if ($links->length <= $offset) {
-            return false;
-        }
-        $link = $links->item($offset);
-        return $this->addBase($link->nodeValue, $link);
-    }
-}
-
-?>
\ No newline at end of file