import v2.0.0.0_RC3 | 2012-07-01

https://github.com/lucanos/CommunityID -> http://www.itadmins.net/archives/357
This commit is contained in:
2019-07-17 22:31:04 +02:00
parent 38c146901c
commit 2f397f01f7
2677 changed files with 296182 additions and 45159 deletions

View File

@ -16,7 +16,7 @@
* @package Zend_Feed_Reader
* @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: Reader.php 17391 2009-08-05 11:27:52Z padraic $
* @version $Id: Reader.php 19120 2009-11-20 17:58:59Z padraic $
*/
/**
@ -34,6 +34,11 @@ require_once 'Zend/Feed/Reader/Feed/Rss.php';
*/
require_once 'Zend/Feed/Reader/Feed/Atom.php';
/**
* @see Zend_Feed_Reader_FeedSet
*/
require_once 'Zend/Feed/Reader/FeedSet.php';
/**
* @category Zend
* @package Zend_Feed_Reader
@ -42,20 +47,20 @@ require_once 'Zend/Feed/Reader/Feed/Atom.php';
*/
class Zend_Feed_Reader
{
/**
* Namespace constants
*/
const NAMESPACE_ATOM_03 = 'http://purl.org/atom/ns#';
/**
* Namespace constants
*/
const NAMESPACE_ATOM_03 = 'http://purl.org/atom/ns#';
const NAMESPACE_ATOM_10 = 'http://www.w3.org/2005/Atom';
const NAMESPACE_RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
const NAMESPACE_RSS_090 = 'http://my.netscape.com/rdf/simple/0.9/';
const NAMESPACE_RSS_10 = 'http://purl.org/rss/1.0/';
/**
* Feed type constants
*/
const TYPE_ANY = 'any';
const TYPE_ATOM_03 = 'atom-03';
* Feed type constants
*/
const TYPE_ANY = 'any';
const TYPE_ATOM_03 = 'atom-03';
const TYPE_ATOM_10 = 'atom-10';
const TYPE_ATOM_ANY = 'atom';
const TYPE_RSS_090 = 'rss-090';
@ -208,13 +213,13 @@ class Zend_Feed_Reader
}
/**
* Import a feed by providing a URL
*
* @param string $url The URL to the feed
* Import a feed by providing a URL
*
* @param string $url The URL to the feed
* @param string $etag OPTIONAL Last received ETag for this resource
* @param string $lastModified OPTIONAL Last-Modified value for this resource
* @return Zend_Feed_Reader_Feed_Interface
*/
* @return Zend_Feed_Reader_FeedInterface
*/
public static function import($uri, $etag = null, $lastModified = null)
{
$cache = self::getCache();
@ -288,8 +293,8 @@ class Zend_Feed_Reader
* Import a feed by providing a Zend_Feed_Abstract object
*
* @param Zend_Feed_Abstract $feed A fully instantiated Zend_Feed object
* @return Zend_Feed_Reader_Feed_Interface
*/
* @return Zend_Feed_Reader_FeedInterface
*/
public static function importFeed(Zend_Feed_Abstract $feed)
{
$dom = $feed->getDOM()->ownerDocument;
@ -298,7 +303,7 @@ class Zend_Feed_Reader
if (substr($type, 0, 3) == 'rss') {
$reader = new Zend_Feed_Reader_Feed_Rss($dom, $type);
} else {
$reader = new Zend_Feed_Reader_Feed_Atom($dom, $type);
$reader = new Zend_Feed_Reader_Feed_Atom($dom, $type);
}
return $reader;
@ -308,7 +313,7 @@ class Zend_Feed_Reader
* Import a feed froma string
*
* @param string $string
* @return Zend_Feed_Reader_Feed_Interface
* @return Zend_Feed_Reader_FeedInterface
*/
public static function importString($string)
{
@ -321,9 +326,9 @@ class Zend_Feed_Reader
// Build error message
$error = libxml_get_last_error();
if ($error && $error->message) {
$errormsg = "DOMDocument cannot parse XML: {$error->message}";
$errormsg = "DOMDocument cannot parse XML: {$error->message}";
} else {
$errormsg = "DOMDocument cannot parse XML: Please check the XML document's validity";
$errormsg = "DOMDocument cannot parse XML: Please check the XML document's validity";
}
require_once 'Zend/Feed/Exception.php';
@ -336,8 +341,12 @@ class Zend_Feed_Reader
if (substr($type, 0, 3) == 'rss') {
$reader = new Zend_Feed_Reader_Feed_Rss($dom, $type);
} elseif (substr($type, 0, 4) == 'atom') {
$reader = new Zend_Feed_Reader_Feed_Atom($dom, $type);
} else {
$reader = new Zend_Feed_Reader_Feed_Atom($dom, $type);
require_once 'Zend/Feed/Exception.php';
throw new Zend_Feed_Exception('The URI used does not point to a '
. 'valid Atom, RSS or RDF feed that Zend_Feed_Reader can parse.');
}
return $reader;
}
@ -378,40 +387,26 @@ class Zend_Feed_Reader
throw new Zend_Feed_Exception("Failed to access $uri, got response code " . $response->getStatus());
}
$responseHtml = $response->getBody();
@ini_set('track_errors', 1);
$libxml_errflag = libxml_use_internal_errors(true);
$dom = new DOMDocument;
$status = @$dom->loadHTML($responseHtml);
@ini_restore('track_errors');
$status = $dom->loadHTML($responseHtml);
libxml_use_internal_errors($libxml_errflag);
if (!$status) {
if (!isset($php_errormsg)) {
if (function_exists('xdebug_is_enabled')) {
$php_errormsg = '(error message not available, when XDebug is running)';
} else {
$php_errormsg = '(error message not available)';
}
// Build error message
$error = libxml_get_last_error();
if ($error && $error->message) {
$errormsg = "DOMDocument cannot parse HTML: {$error->message}";
} else {
$errormsg = "DOMDocument cannot parse HTML: Please check the XML document's validity";
}
require_once 'Zend/Feed/Exception.php';
throw new Zend_Feed_Exception("DOMDocument cannot parse XML: $php_errormsg");
throw new Zend_Feed_Exception($errormsg);
}
$feedLinks = new stdClass;
$feedSet = new Zend_Feed_Reader_FeedSet;
$links = $dom->getElementsByTagName('link');
foreach ($links as $link) {
if (strtolower($link->getAttribute('rel')) !== 'alternate'
|| !$link->getAttribute('type') || !$link->getAttribute('href')) {
continue;
}
if (!isset($feedLinks->rss) && $link->getAttribute('type') == 'application/rss+xml') {
$feedLinks->rss = $link->getAttribute('href');
} elseif(!isset($feedLinks->atom) && $link->getAttribute('type') == 'application/atom+xml') {
$feedLinks->atom = $link->getAttribute('href');
} elseif(!isset($feedLinks->rdf) && $link->getAttribute('type') == 'application/rdf+xml') {
$feedLinks->rdf = $link->getAttribute('href');
}
if (isset($feedLinks->rss) && isset($feedLinks->atom) && isset($feedLinks->rdf)) {
break;
}
}
return $feedLinks;
$feedSet->addLinks($links, $uri);
return $feedSet;
}
/**