From 0ae8cbf5c0b1a198b963490985b7738392ebcb97 Mon Sep 17 00:00:00 2001 From: ahriman Date: Mon, 3 Dec 2018 19:22:25 -0500 Subject: installed dokuwiki, added to navbar, updated news --- wiki/inc/FeedParser.php | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 wiki/inc/FeedParser.php (limited to 'wiki/inc/FeedParser.php') diff --git a/wiki/inc/FeedParser.php b/wiki/inc/FeedParser.php new file mode 100644 index 0000000..39434dc --- /dev/null +++ b/wiki/inc/FeedParser.php @@ -0,0 +1,84 @@ + + */ + +if(!defined('DOKU_INC')) die('meh.'); + +/** + * We override some methods of the original SimplePie class here + */ +class FeedParser extends SimplePie { + + /** + * Constructor. Set some defaults + */ + function __construct(){ + parent::__construct(); + $this->enable_cache(false); + $this->set_file_class('FeedParser_File'); + } + + /** + * Backward compatibility for older plugins + * + * @param string $url + */ + 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; + /** @noinspection PhpMissingParentConstructorInspection */ + + /** + * Inititializes the HTTPClient + * + * We ignore all given parameters - they are set in DokuHTTPClient + * + * @inheritdoc + */ + function __construct($url, $timeout=10, $redirects=5, + $headers=null, $useragent=null, $force_fsockopen=false, $curl_options = array()) { + $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; + + $this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_FSOCKOPEN; + + return $this->success; + } + + /** @inheritdoc */ + function headers(){ + return $this->headers; + } + + /** @inheritdoc */ + function body(){ + return $this->body; + } + + /** @inheritdoc */ + function close(){ + return true; + } + +} -- cgit 1.4.1-2-gfad0