summaryrefslogtreecommitdiffstats
path: root/ocs/providers.php
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2015-11-30 15:40:10 +0100
committerLukas Reschke <lukas@owncloud.com>2015-11-30 15:40:10 +0100
commit574f9b1e3f27da9b68e85ff60d0ae21e852be1c7 (patch)
tree67c384e652250fdf69f45678d05271b45a2f8871 /ocs/providers.php
parenta94819f4a47ba98b185c9c75eab43d8cb933ed5c (diff)
downloadnextcloud-server-574f9b1e3f27da9b68e85ff60d0ae21e852be1c7.tar.gz
nextcloud-server-574f9b1e3f27da9b68e85ff60d0ae21e852be1c7.zip
Use XMLWriter to generate response
Gets rid of manual XML generation.
Diffstat (limited to 'ocs/providers.php')
-rw-r--r--ocs/providers.php47
1 files changed, 29 insertions, 18 deletions
diff --git a/ocs/providers.php b/ocs/providers.php
index ce818a0cb6a..f82c20eba63 100644
--- a/ocs/providers.php
+++ b/ocs/providers.php
@@ -27,22 +27,33 @@ require_once '../lib/base.php';
header('Content-type: application/xml');
-$url=OCP\Util::getServerProtocol().'://'.substr(OCP\Util::getServerHost().OCP\Util::getRequestUri(), 0, -17).'ocs/v1.php/';
+$request = \OC::$server->getRequest();
-echo('
-<providers>
-<provider>
- <id>ownCloud</id>
- <location>'.$url.'</location>
- <name>ownCloud</name>
- <icon></icon>
- <termsofuse></termsofuse>
- <register></register>
- <services>
- <config ocsversion="1.7" />
- <activity ocsversion="1.7" />
- <cloud ocsversion="1.7" />
- </services>
-</provider>
-</providers>
-');
+$url = $request->getServerProtocol() . '://' . substr($request->getServerHost() . $request->getRequestUri(), 0, -17).'ocs/v1.php/';
+
+$writer = new XMLWriter();
+$writer->openURI('php://output');
+$writer->startDocument('1.0','UTF-8');
+$writer->setIndent(4);
+$writer->startElement('providers');
+$writer->startElement('provider');
+$writer->writeElement('id', 'ownCloud');
+$writer->writeElement('location', $url);
+$writer->writeElement('name', 'ownCloud');
+$writer->writeElement('icon', '');
+$writer->writeElement('termsofuse', '');
+$writer->writeElement('register', '');
+$writer->startElement('services');
+$writer->startElement('config');
+$writer->writeAttribute('ocsversion', '1.7');
+$writer->endElement();
+$writer->startElement('activity');
+$writer->writeAttribute('ocsversion', '1.7');
+$writer->endElement();
+$writer->startElement('cloud');
+$writer->writeAttribute('ocsversion', '1.7');
+$writer->endElement();
+$writer->endElement();
+$writer->endElement();
+$writer->endDocument();
+$writer->flush();