aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/lib/DAV/Browser/Plugin.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/sabre/dav/lib/DAV/Browser/Plugin.php')
-rw-r--r--vendor/sabre/dav/lib/DAV/Browser/Plugin.php348
1 files changed, 174 insertions, 174 deletions
diff --git a/vendor/sabre/dav/lib/DAV/Browser/Plugin.php b/vendor/sabre/dav/lib/DAV/Browser/Plugin.php
index 545ad5633..e2fab4b79 100644
--- a/vendor/sabre/dav/lib/DAV/Browser/Plugin.php
+++ b/vendor/sabre/dav/lib/DAV/Browser/Plugin.php
@@ -1,15 +1,18 @@
<?php
+declare(strict_types=1);
+
namespace Sabre\DAV\Browser;
use Sabre\DAV;
use Sabre\DAV\MkCol;
+use Sabre\HTTP;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
-use Sabre\HTTP\URLUtil;
+use Sabre\Uri;
/**
- * Browser Plugin
+ * Browser Plugin.
*
* This plugin provides a html representation, so that a WebDAV server may be accessed
* using a browser.
@@ -21,10 +24,10 @@ use Sabre\HTTP\URLUtil;
* @author Evert Pot (http://evertpot.com/)
* @license http://sabre.io/license/ Modified BSD License
*/
-class Plugin extends DAV\ServerPlugin {
-
+class Plugin extends DAV\ServerPlugin
+{
/**
- * reference to server class
+ * reference to server class.
*
* @var DAV\Server
*/
@@ -60,53 +63,54 @@ class Plugin extends DAV\ServerPlugin {
*
* @param bool $enablePost
*/
- function __construct($enablePost = true) {
-
+ public function __construct($enablePost = true)
+ {
$this->enablePost = $enablePost;
-
}
/**
- * Initializes the plugin and subscribes to events
+ * Initializes the plugin and subscribes to events.
*
* @param DAV\Server $server
- * @return void
*/
- function initialize(DAV\Server $server) {
-
+ public function initialize(DAV\Server $server)
+ {
$this->server = $server;
$this->server->on('method:GET', [$this, 'httpGetEarly'], 90);
$this->server->on('method:GET', [$this, 'httpGet'], 200);
$this->server->on('onHTMLActionsPanel', [$this, 'htmlActionsPanel'], 200);
- if ($this->enablePost) $this->server->on('method:POST', [$this, 'httpPOST']);
+ if ($this->enablePost) {
+ $this->server->on('method:POST', [$this, 'httpPOST']);
+ }
}
/**
* This method intercepts GET requests that have ?sabreAction=info
- * appended to the URL
+ * appended to the URL.
*
- * @param RequestInterface $request
+ * @param RequestInterface $request
* @param ResponseInterface $response
+ *
* @return bool
*/
- function httpGetEarly(RequestInterface $request, ResponseInterface $response) {
-
+ public function httpGetEarly(RequestInterface $request, ResponseInterface $response)
+ {
$params = $request->getQueryParameters();
- if (isset($params['sabreAction']) && $params['sabreAction'] === 'info') {
+ if (isset($params['sabreAction']) && 'info' === $params['sabreAction']) {
return $this->httpGet($request, $response);
}
-
}
/**
- * This method intercepts GET requests to collections and returns the html
+ * This method intercepts GET requests to collections and returns the html.
*
- * @param RequestInterface $request
+ * @param RequestInterface $request
* @param ResponseInterface $response
+ *
* @return bool
*/
- function httpGet(RequestInterface $request, ResponseInterface $response) {
-
+ public function httpGet(RequestInterface $request, ResponseInterface $response)
+ {
// We're not using straight-up $_GET, because we want everything to be
// unit testable.
$getVars = $request->getQueryParameters();
@@ -117,13 +121,13 @@ class Plugin extends DAV\ServerPlugin {
$sabreAction = isset($getVars['sabreAction']) ? $getVars['sabreAction'] : null;
switch ($sabreAction) {
-
- case 'asset' :
+ case 'asset':
// Asset handling, such as images
$this->serveAsset(isset($getVars['assetName']) ? $getVars['assetName'] : null);
+
return false;
- default :
- case 'info' :
+ default:
+ case 'info':
try {
$this->server->tree->getNodeForPath($request->getPath());
} catch (DAV\Exception\NotFound $e) {
@@ -141,7 +145,7 @@ class Plugin extends DAV\ServerPlugin {
return false;
- case 'plugins' :
+ case 'plugins':
$response->setStatus(200);
$response->setHeader('Content-Type', 'text/html; charset=utf-8');
@@ -150,41 +154,39 @@ class Plugin extends DAV\ServerPlugin {
);
return false;
-
}
-
}
/**
* Handles POST requests for tree operations.
*
- * @param RequestInterface $request
+ * @param RequestInterface $request
* @param ResponseInterface $response
+ *
* @return bool
*/
- function httpPOST(RequestInterface $request, ResponseInterface $response) {
-
+ public function httpPOST(RequestInterface $request, ResponseInterface $response)
+ {
$contentType = $request->getHeader('Content-Type');
list($contentType) = explode(';', $contentType);
- if ($contentType !== 'application/x-www-form-urlencoded' &&
- $contentType !== 'multipart/form-data') {
- return;
+ if ('application/x-www-form-urlencoded' !== $contentType &&
+ 'multipart/form-data' !== $contentType) {
+ return;
}
$postVars = $request->getPostData();
- if (!isset($postVars['sabreAction']))
+ if (!isset($postVars['sabreAction'])) {
return;
+ }
$uri = $request->getPath();
if ($this->server->emit('onBrowserPostAction', [$uri, $postVars['sabreAction'], $postVars])) {
-
switch ($postVars['sabreAction']) {
-
- case 'mkcol' :
+ case 'mkcol':
if (isset($postVars['name']) && trim($postVars['name'])) {
// Using basename() because we won't allow slashes
- list(, $folderName) = URLUtil::splitPath(trim($postVars['name']));
+ list(, $folderName) = Uri\split(trim($postVars['name']));
if (isset($postVars['resourceType'])) {
$resourceType = explode(',', $postVars['resourceType']);
@@ -196,7 +198,7 @@ class Plugin extends DAV\ServerPlugin {
foreach ($postVars as $varName => $varValue) {
// Any _POST variable in clark notation is treated
// like a property.
- if ($varName[0] === '{') {
+ if ('{' === $varName[0]) {
// PHP will convert any dots to underscores.
// This leaves us with no way to differentiate
// the two.
@@ -212,65 +214,67 @@ class Plugin extends DAV\ServerPlugin {
$resourceType,
$properties
);
- $this->server->createCollection($uri . '/' . $folderName, $mkCol);
+ $this->server->createCollection($uri.'/'.$folderName, $mkCol);
}
break;
// @codeCoverageIgnoreStart
- case 'put' :
+ case 'put':
- if ($_FILES) $file = current($_FILES);
- else break;
+ if ($_FILES) {
+ $file = current($_FILES);
+ } else {
+ break;
+ }
- list(, $newName) = URLUtil::splitPath(trim($file['name']));
- if (isset($postVars['name']) && trim($postVars['name']))
+ list(, $newName) = Uri\split(trim($file['name']));
+ if (isset($postVars['name']) && trim($postVars['name'])) {
$newName = trim($postVars['name']);
+ }
// Making sure we only have a 'basename' component
- list(, $newName) = URLUtil::splitPath($newName);
+ list(, $newName) = Uri\split($newName);
if (is_uploaded_file($file['tmp_name'])) {
- $this->server->createFile($uri . '/' . $newName, fopen($file['tmp_name'], 'r'));
+ $this->server->createFile($uri.'/'.$newName, fopen($file['tmp_name'], 'r'));
}
break;
// @codeCoverageIgnoreEnd
-
}
-
}
$response->setHeader('Location', $request->getUrl());
$response->setStatus(302);
- return false;
+ return false;
}
/**
* Escapes a string for html.
*
* @param string $value
+ *
* @return string
*/
- function escapeHTML($value) {
-
+ public function escapeHTML($value)
+ {
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
-
}
/**
- * Generates the html directory index for a given url
+ * Generates the html directory index for a given url.
*
* @param string $path
+ *
* @return string
*/
- function generateDirectoryIndex($path) {
-
+ public function generateDirectoryIndex($path)
+ {
$html = $this->generateHeader($path ? $path : '/', $path);
$node = $this->server->tree->getNodeForPath($path);
if ($node instanceof DAV\ICollection) {
-
$html .= "<section><h1>Nodes</h1>\n";
- $html .= "<table class=\"nodeTable\">";
+ $html .= '<table class="nodeTable">';
$subNodes = $this->server->getPropertiesForChildren($path, [
'{DAV:}displayname',
@@ -281,10 +285,9 @@ class Plugin extends DAV\ServerPlugin {
]);
foreach ($subNodes as $subPath => $subProps) {
-
$subNode = $this->server->tree->getNodeForPath($subPath);
- $fullPath = $this->server->getBaseUri() . URLUtil::encodePath($subPath);
- list(, $displayPath) = URLUtil::splitPath($subPath);
+ $fullPath = $this->server->getBaseUri().HTTP\encodePath($subPath);
+ list(, $displayPath) = Uri\split($subPath);
$subNodes[$subPath]['subNode'] = $subNode;
$subNodes[$subPath]['fullPath'] = $fullPath;
@@ -295,43 +298,46 @@ class Plugin extends DAV\ServerPlugin {
foreach ($subNodes as $subProps) {
$type = [
'string' => 'Unknown',
- 'icon' => 'cog',
+ 'icon' => 'cog',
];
if (isset($subProps['{DAV:}resourcetype'])) {
$type = $this->mapResourceType($subProps['{DAV:}resourcetype']->getValue(), $subProps['subNode']);
}
$html .= '<tr>';
- $html .= '<td class="nameColumn"><a href="' . $this->escapeHTML($subProps['fullPath']) . '"><span class="oi" data-glyph="' . $this->escapeHTML($type['icon']) . '"></span> ' . $this->escapeHTML($subProps['displayPath']) . '</a></td>';
- $html .= '<td class="typeColumn">' . $this->escapeHTML($type['string']) . '</td>';
+ $html .= '<td class="nameColumn"><a href="'.$this->escapeHTML($subProps['fullPath']).'"><span class="oi" data-glyph="'.$this->escapeHTML($type['icon']).'"></span> '.$this->escapeHTML($subProps['displayPath']).'</a></td>';
+ $html .= '<td class="typeColumn">'.$this->escapeHTML($type['string']).'</td>';
$html .= '<td>';
if (isset($subProps['{DAV:}getcontentlength'])) {
- $html .= $this->escapeHTML($subProps['{DAV:}getcontentlength'] . ' bytes');
+ $html .= $this->escapeHTML($subProps['{DAV:}getcontentlength'].' bytes');
}
$html .= '</td><td>';
if (isset($subProps['{DAV:}getlastmodified'])) {
$lastMod = $subProps['{DAV:}getlastmodified']->getTime();
$html .= $this->escapeHTML($lastMod->format('F j, Y, g:i a'));
}
+ $html .= '</td><td>';
+ if (isset($subProps['{DAV:}displayname'])) {
+ $html .= $this->escapeHTML($subProps['{DAV:}displayname']);
+ }
$html .= '</td>';
$buttonActions = '';
if ($subProps['subNode'] instanceof DAV\IFile) {
- $buttonActions = '<a href="' . $this->escapeHTML($subProps['fullPath']) . '?sabreAction=info"><span class="oi" data-glyph="info"></span></a>';
+ $buttonActions = '<a href="'.$this->escapeHTML($subProps['fullPath']).'?sabreAction=info"><span class="oi" data-glyph="info"></span></a>';
}
$this->server->emit('browserButtonActions', [$subProps['fullPath'], $subProps['subNode'], &$buttonActions]);
- $html .= '<td>' . $buttonActions . '</td>';
+ $html .= '<td>'.$buttonActions.'</td>';
$html .= '</tr>';
}
$html .= '</table>';
-
}
- $html .= "</section>";
- $html .= "<section><h1>Properties</h1>";
- $html .= "<table class=\"propTable\">";
+ $html .= '</section>';
+ $html .= '<section><h1>Properties</h1>';
+ $html .= '<table class="propTable">';
// Allprops request
$propFind = new PropFindAll($path);
@@ -343,12 +349,10 @@ class Plugin extends DAV\ServerPlugin {
if (!in_array($propName, $this->uninterestingProperties)) {
$html .= $this->drawPropertyRow($propName, $propValue);
}
-
}
-
- $html .= "</table>";
- $html .= "</section>";
+ $html .= '</table>';
+ $html .= '</section>';
/* Start of generating actions */
@@ -358,8 +362,7 @@ class Plugin extends DAV\ServerPlugin {
}
if ($output) {
-
- $html .= "<section><h1>Actions</h1>";
+ $html .= '<section><h1>Actions</h1>';
$html .= "<div class=\"actions\">\n";
$html .= $output;
$html .= "</div>\n";
@@ -371,7 +374,6 @@ class Plugin extends DAV\ServerPlugin {
$this->server->httpResponse->setHeader('Content-Security-Policy', "default-src 'none'; img-src 'self'; style-src 'self'; font-src 'self';");
return $html;
-
}
/**
@@ -379,31 +381,30 @@ class Plugin extends DAV\ServerPlugin {
*
* @return string
*/
- function generatePluginListing() {
-
+ public function generatePluginListing()
+ {
$html = $this->generateHeader('Plugins');
- $html .= "<section><h1>Plugins</h1>";
- $html .= "<table class=\"propTable\">";
+ $html .= '<section><h1>Plugins</h1>';
+ $html .= '<table class="propTable">';
foreach ($this->server->getPlugins() as $plugin) {
$info = $plugin->getPluginInfo();
- $html .= '<tr><th>' . $info['name'] . '</th>';
- $html .= '<td>' . $info['description'] . '</td>';
+ $html .= '<tr><th>'.$info['name'].'</th>';
+ $html .= '<td>'.$info['description'].'</td>';
$html .= '<td>';
if (isset($info['link']) && $info['link']) {
- $html .= '<a href="' . $this->escapeHTML($info['link']) . '"><span class="oi" data-glyph="book"></span></a>';
+ $html .= '<a href="'.$this->escapeHTML($info['link']).'"><span class="oi" data-glyph="book"></span></a>';
}
$html .= '</td></tr>';
}
- $html .= "</table>";
- $html .= "</section>";
+ $html .= '</table>';
+ $html .= '</section>';
/* Start of generating actions */
$html .= $this->generateFooter();
return $html;
-
}
/**
@@ -414,22 +415,23 @@ class Plugin extends DAV\ServerPlugin {
*
* @param string $title
* @param string $path
+ *
* @return string
*/
- function generateHeader($title, $path = null) {
-
+ public function generateHeader($title, $path = null)
+ {
$version = '';
if (DAV\Server::$exposeVersion) {
$version = DAV\Version::VERSION;
}
$vars = [
- 'title' => $this->escapeHTML($title),
- 'favicon' => $this->escapeHTML($this->getAssetUrl('favicon.ico')),
- 'style' => $this->escapeHTML($this->getAssetUrl('sabredav.css')),
+ 'title' => $this->escapeHTML($title),
+ 'favicon' => $this->escapeHTML($this->getAssetUrl('favicon.ico')),
+ 'style' => $this->escapeHTML($this->getAssetUrl('sabredav.css')),
'iconstyle' => $this->escapeHTML($this->getAssetUrl('openiconic/open-iconic.css')),
- 'logo' => $this->escapeHTML($this->getAssetUrl('sabredav.png')),
- 'baseUrl' => $this->server->getBaseUri(),
+ 'logo' => $this->escapeHTML($this->getAssetUrl('sabredav.png')),
+ 'baseUrl' => $this->server->getBaseUri(),
];
$html = <<<HTML
@@ -453,20 +455,19 @@ class Plugin extends DAV\ServerPlugin {
HTML;
// If the path is empty, there's no parent.
- if ($path) {
- list($parentUri) = URLUtil::splitPath($path);
- $fullPath = $this->server->getBaseUri() . URLUtil::encodePath($parentUri);
- $html .= '<a href="' . $fullPath . '" class="btn">⇤ Go to parent</a>';
+ if ($path) {
+ list($parentUri) = Uri\split($path);
+ $fullPath = $this->server->getBaseUri().HTTP\encodePath($parentUri);
+ $html .= '<a href="'.$fullPath.'" class="btn">⇤ Go to parent</a>';
} else {
$html .= '<span class="btn disabled">⇤ Go to parent</span>';
}
$html .= ' <a href="?sabreAction=plugins" class="btn"><span class="oi" data-glyph="puzzle-piece"></span> Plugins</a>';
- $html .= "</nav>";
+ $html .= '</nav>';
return $html;
-
}
/**
@@ -476,18 +477,19 @@ HTML;
*
* @return string
*/
- function generateFooter() {
-
+ public function generateFooter()
+ {
$version = '';
if (DAV\Server::$exposeVersion) {
$version = DAV\Version::VERSION;
}
+ $year = date('Y');
+
return <<<HTML
-<footer>Generated by SabreDAV $version (c)2007-2016 <a href="http://sabre.io/">http://sabre.io/</a></footer>
+<footer>Generated by SabreDAV $version (c)2007-$year <a href="http://sabre.io/">http://sabre.io/</a></footer>
</body>
</html>
HTML;
-
}
/**
@@ -498,19 +500,20 @@ HTML;
* creating new directories.
*
* @param DAV\INode $node
- * @param mixed $output
- * @param string $path
- * @return void
+ * @param mixed $output
+ * @param string $path
*/
- function htmlActionsPanel(DAV\INode $node, &$output, $path) {
-
- if (!$node instanceof DAV\ICollection)
+ public function htmlActionsPanel(DAV\INode $node, &$output, $path)
+ {
+ if (!$node instanceof DAV\ICollection) {
return;
+ }
// We also know fairly certain that if an object is a non-extended
// SimpleCollection, we won't need to show the panel either.
- if (get_class($node) === 'Sabre\\DAV\\SimpleCollection')
+ if ('Sabre\\DAV\\SimpleCollection' === get_class($node)) {
return;
+ }
$output .= <<<HTML
<form method="post" action="">
@@ -527,7 +530,6 @@ HTML;
<input type="submit" value="upload" />
</form>
HTML;
-
}
/**
@@ -535,32 +537,35 @@ HTML;
* suiteable for http access.
*
* @param string $assetName
+ *
* @return string
*/
- protected function getAssetUrl($assetName) {
-
- return $this->server->getBaseUri() . '?sabreAction=asset&assetName=' . urlencode($assetName);
-
+ protected function getAssetUrl($assetName)
+ {
+ return $this->server->getBaseUri().'?sabreAction=asset&assetName='.urlencode($assetName);
}
/**
* This method returns a local pathname to an asset.
*
* @param string $assetName
+ *
* @throws DAV\Exception\NotFound
+ *
* @return string
*/
- protected function getLocalAssetPath($assetName) {
-
- $assetDir = __DIR__ . '/assets/';
- $path = $assetDir . $assetName;
+ protected function getLocalAssetPath($assetName)
+ {
+ $assetDir = __DIR__.'/assets/';
+ $path = $assetDir.$assetName;
// Making sure people aren't trying to escape from the base path.
$path = str_replace('\\', '/', $path);
- if (strpos($path, '/../') !== false || strrchr($path, '/') === '/..') {
+ if (false !== strpos($path, '/../') || '/..' === strrchr($path, '/')) {
throw new DAV\Exception\NotFound('Path does not exist, or escaping from the base path was detected');
}
- if (strpos(realpath($path), realpath($assetDir)) === 0 && file_exists($path)) {
+ $realPath = realpath($path);
+ if ($realPath && 0 === strpos($realPath, realpath($assetDir)) && file_exists($path)) {
return $path;
}
throw new DAV\Exception\NotFound('Path does not exist, or escaping from the base path was detected');
@@ -570,10 +575,9 @@ HTML;
* This method reads an asset from disk and generates a full http response.
*
* @param string $assetName
- * @return void
*/
- protected function serveAsset($assetName) {
-
+ protected function serveAsset($assetName)
+ {
$assetPath = $this->getLocalAssetPath($assetName);
// Rudimentary mime type detection
@@ -594,7 +598,6 @@ HTML;
$this->server->httpResponse->setHeader('Cache-Control', 'public, max-age=1209600');
$this->server->httpResponse->setStatus(200);
$this->server->httpResponse->setBody(fopen($assetPath, 'r'));
-
}
/**
@@ -603,10 +606,11 @@ HTML;
*
* @param array $a
* @param array $b
+ *
* @return int
*/
- protected function compareNodes($a, $b) {
-
+ protected function compareNodes($a, $b)
+ {
$typeA = (isset($a['{DAV:}resourcetype']))
? (in_array('{DAV:}collection', $a['{DAV:}resourcetype']->getValue()))
: false;
@@ -619,29 +623,30 @@ HTML;
if ($typeA === $typeB) {
return strnatcasecmp($a['displayPath'], $b['displayPath']);
}
- return (($typeA < $typeB) ? 1 : -1);
+ return ($typeA < $typeB) ? 1 : -1;
}
/**
* Maps a resource type to a human-readable string and icon.
*
- * @param array $resourceTypes
+ * @param array $resourceTypes
* @param DAV\INode $node
+ *
* @return array
*/
- private function mapResourceType(array $resourceTypes, $node) {
-
+ private function mapResourceType(array $resourceTypes, $node)
+ {
if (!$resourceTypes) {
if ($node instanceof DAV\IFile) {
return [
'string' => 'File',
- 'icon' => 'file',
+ 'icon' => 'file',
];
} else {
return [
'string' => 'Unknown',
- 'icon' => 'cog',
+ 'icon' => 'cog',
];
}
}
@@ -649,53 +654,53 @@ HTML;
$types = [
'{http://calendarserver.org/ns/}calendar-proxy-write' => [
'string' => 'Proxy-Write',
- 'icon' => 'people',
+ 'icon' => 'people',
],
'{http://calendarserver.org/ns/}calendar-proxy-read' => [
'string' => 'Proxy-Read',
- 'icon' => 'people',
+ 'icon' => 'people',
],
'{urn:ietf:params:xml:ns:caldav}schedule-outbox' => [
'string' => 'Outbox',
- 'icon' => 'inbox',
+ 'icon' => 'inbox',
],
'{urn:ietf:params:xml:ns:caldav}schedule-inbox' => [
'string' => 'Inbox',
- 'icon' => 'inbox',
+ 'icon' => 'inbox',
],
'{urn:ietf:params:xml:ns:caldav}calendar' => [
'string' => 'Calendar',
- 'icon' => 'calendar',
+ 'icon' => 'calendar',
],
'{http://calendarserver.org/ns/}shared-owner' => [
'string' => 'Shared',
- 'icon' => 'calendar',
+ 'icon' => 'calendar',
],
'{http://calendarserver.org/ns/}subscribed' => [
'string' => 'Subscription',
- 'icon' => 'calendar',
+ 'icon' => 'calendar',
],
'{urn:ietf:params:xml:ns:carddav}directory' => [
'string' => 'Directory',
- 'icon' => 'globe',
+ 'icon' => 'globe',
],
'{urn:ietf:params:xml:ns:carddav}addressbook' => [
'string' => 'Address book',
- 'icon' => 'book',
+ 'icon' => 'book',
],
'{DAV:}principal' => [
'string' => 'Principal',
- 'icon' => 'person',
+ 'icon' => 'person',
],
'{DAV:}collection' => [
'string' => 'Collection',
- 'icon' => 'folder',
+ 'icon' => 'folder',
],
];
$info = [
'string' => [],
- 'icon' => 'cog',
+ 'icon' => 'cog',
];
foreach ($resourceTypes as $k => $resourceType) {
if (isset($types[$resourceType])) {
@@ -713,42 +718,41 @@ HTML;
$info['string'] = implode(', ', $info['string']);
return $info;
-
}
/**
- * Draws a table row for a property
+ * Draws a table row for a property.
*
* @param string $name
- * @param mixed $value
+ * @param mixed $value
+ *
* @return string
*/
- private function drawPropertyRow($name, $value) {
-
+ private function drawPropertyRow($name, $value)
+ {
$html = new HtmlOutputHelper(
$this->server->getBaseUri(),
$this->server->xml->namespaceMap
);
- return "<tr><th>" . $html->xmlName($name) . "</th><td>" . $this->drawPropertyValue($html, $value) . "</td></tr>";
-
+ return '<tr><th>'.$html->xmlName($name).'</th><td>'.$this->drawPropertyValue($html, $value).'</td></tr>';
}
/**
- * Draws a table row for a property
+ * Draws a table row for a property.
*
* @param HtmlOutputHelper $html
- * @param mixed $value
+ * @param mixed $value
+ *
* @return string
*/
- private function drawPropertyValue($html, $value) {
-
+ private function drawPropertyValue($html, $value)
+ {
if (is_scalar($value)) {
return $html->h($value);
} elseif ($value instanceof HtmlOutput) {
return $value->toHtml($html);
} elseif ($value instanceof \Sabre\Xml\XmlSerializable) {
-
// There's no default html output for this property, we're going
// to output the actual xml serialization instead.
$xml = $this->server->xml->write('{DAV:}root', $value, $this->server->getBaseUri());
@@ -756,12 +760,11 @@ HTML;
// element.
$xml = explode("\n", $xml);
$xml = array_slice($xml, 2, -2);
- return "<pre>" . $html->h(implode("\n", $xml)) . "</pre>";
+ return '<pre>'.$html->h(implode("\n", $xml)).'</pre>';
} else {
- return "<em>unknown</em>";
+ return '<em>unknown</em>';
}
-
}
/**
@@ -772,10 +775,9 @@ HTML;
*
* @return string
*/
- function getPluginName() {
-
+ public function getPluginName()
+ {
return 'browser';
-
}
/**
@@ -789,14 +791,12 @@ HTML;
*
* @return array
*/
- function getPluginInfo() {
-
+ public function getPluginInfo()
+ {
return [
- 'name' => $this->getPluginName(),
+ 'name' => $this->getPluginName(),
'description' => 'Generates HTML indexes and debug information for your sabre/dav server',
- 'link' => 'http://sabre.io/dav/browser-plugin/',
+ 'link' => 'http://sabre.io/dav/browser-plugin/',
];
-
}
-
}