server = $server; $this->server->subscribeEvent('beforeMethod',array($this,'beforeMethod'), 90); } /** * 'beforeMethod' event handles. This event handles intercepts GET requests ending * with ?mount * * @param string $method * @param string $uri * @return bool */ public function beforeMethod($method, $uri) { if ($method!='GET') return; if ($this->server->httpRequest->getQueryString()!='mount') return; $currentUri = $this->server->httpRequest->getAbsoluteUri(); // Stripping off everything after the ? list($currentUri) = explode('?',$currentUri); $this->davMount($currentUri); // Returning false to break the event chain return false; } /** * Generates the davmount response * * @param string $uri absolute uri * @return void */ public function davMount($uri) { $this->server->httpResponse->sendStatus(200); $this->server->httpResponse->setHeader('Content-Type','application/davmount+xml'); ob_start(); echo '', "\n"; echo "\n"; echo " ", htmlspecialchars($uri, ENT_NOQUOTES, 'UTF-8'), "\n"; echo ""; $this->server->httpResponse->sendBody(ob_get_clean()); } }