From 090e2188026c76ac396c919b27404dc7cb110bf8 Mon Sep 17 00:00:00 2001 From: sembrestels Date: Thu, 13 Oct 2011 02:39:43 +0200 Subject: Dokuwiki module for Elgg 1.7 --- lib/dokuwiki/inc/FeedParser.php | 76 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 lib/dokuwiki/inc/FeedParser.php (limited to 'lib/dokuwiki/inc/FeedParser.php') diff --git a/lib/dokuwiki/inc/FeedParser.php b/lib/dokuwiki/inc/FeedParser.php new file mode 100644 index 000000000..f37888f01 --- /dev/null +++ b/lib/dokuwiki/inc/FeedParser.php @@ -0,0 +1,76 @@ + + */ + +if(!defined('DOKU_INC')) die('meh.'); +require_once(DOKU_INC.'inc/HTTPClient.php'); +require_once(DOKU_INC.'inc/SimplePie.php'); + + +/** + * We override some methods of the original SimplePie class here + */ +class FeedParser extends SimplePie { + + /** + * Constructor. Set some defaults + */ + function FeedParser(){ + $this->SimplePie(); + $this->enable_cache(false); + $this->set_file_class('FeedParser_File'); + } + + /** + * Backward compatibility for older plugins + */ + function feed_url($url){ + $this->set_feed_url($url); + } +} + +/** + * Fetch an URL using our own HTTPClient + * + * Replaces SimplePie's own class + */ +class FeedParser_File extends SimplePie_File { + var $http; + var $useragent; + var $success = true; + var $headers = array(); + var $body; + var $error; + + /** + * Inititializes the HTTPClient + * + * We ignore all given parameters - they are set in DokuHTTPClient + */ + function FeedParser_File($url, $timeout=10, $redirects=5, + $headers=null, $useragent=null, $force_fsockopen=false) { + $this->http = new DokuHTTPClient(); + $this->success = $this->http->sendRequest($url); + + $this->headers = $this->http->resp_headers; + $this->body = $this->http->resp_body; + $this->error = $this->http->error; + return $this->success; + } + + function headers(){ + return $this->headers; + } + + function body(){ + return $this->body; + } + + function close(){ + return true; + } + +} -- cgit v1.2.3