| 
							- <?php
 - 
 - namespace dokuwiki\HTTP;
 - 
 - use dokuwiki\Extension\Event;
 - 
 - /**
 -  * Adds DokuWiki specific configs to the HTTP client
 -  *
 -  * @author Andreas Goetz <cpuidle@gmx.de>
 -  * @link https://www.dokuwiki.org/devel:httpclient
 -  */
 - class DokuHTTPClient extends HTTPClient
 - {
 -     /**
 -      * Constructor.
 -      *
 -      * @author Andreas Gohr <andi@splitbrain.org>
 -      */
 -     public function __construct()
 -     {
 -         global $conf;
 - 
 -         // call parent constructor
 -         parent::__construct();
 - 
 -         // set some values from the config
 -         $this->proxy_host = $conf['proxy']['host'];
 -         $this->proxy_port = $conf['proxy']['port'];
 -         $this->proxy_user = $conf['proxy']['user'];
 -         $this->proxy_pass = conf_decodeString($conf['proxy']['pass']);
 -         $this->proxy_ssl = $conf['proxy']['ssl'];
 -         $this->proxy_except = $conf['proxy']['except'];
 - 
 -         // allow enabling debugging via URL parameter (if debugging allowed)
 -         if ($conf['allowdebug']) {
 -             if (
 -                 isset($_REQUEST['httpdebug']) ||
 -                 (
 -                     isset($_SERVER['HTTP_REFERER']) &&
 -                     strpos($_SERVER['HTTP_REFERER'], 'httpdebug') !== false
 -                 )
 -             ) {
 -                 $this->debug = true;
 -             }
 -         }
 -     }
 - 
 - 
 -     /**
 -      * Wraps an event around the parent function
 -      *
 -      * @triggers HTTPCLIENT_REQUEST_SEND
 -      * @author   Andreas Gohr <andi@splitbrain.org>
 -      */
 -     /**
 -      * @param string $url
 -      * @param string|array $data the post data either as array or raw data
 -      * @param string $method
 -      * @return bool
 -      */
 -     public function sendRequest($url, $data = '', $method = 'GET')
 -     {
 -         $httpdata = [
 -             'url' => $url,
 -             'data' => $data,
 -             'method' => $method
 -         ];
 -         $evt = new Event('HTTPCLIENT_REQUEST_SEND', $httpdata);
 -         if ($evt->advise_before()) {
 -             $url = $httpdata['url'];
 -             $data = $httpdata['data'];
 -             $method = $httpdata['method'];
 -         }
 -         $evt->advise_after();
 -         unset($evt);
 -         return parent::sendRequest($url, $data, $method);
 -     }
 - }
 
 
  |