Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1726659
HtmlOutputHelper.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Size
2 KB
Subscribers
None
HtmlOutputHelper.php
View Options
<?php
namespace
Sabre\DAV\Browser
;
use
Sabre\Uri
;
use
Sabre\Xml\Service
as
XmlService
;
/**
* This class provides a few utility functions for easily generating HTML for
* the browser plugin.
*
* @copyright Copyright (C) 2007-2015 fruux GmbH. (https://fruux.com/)
* @author Evert Pot (http://evertpot.com/)
* @license http://sabre.io/license/ Modified BSD License
*/
class
HtmlOutputHelper
{
/**
* Link to the root of the application.
*
* @var string
*/
protected
$baseUri
;
/**
* List of xml namespaces.
*
* @var array
*/
protected
$namespaceMap
;
/**
* Creates the object.
*
* baseUri must point to the root of the application. This will be used to
* easily generate links.
*
* The namespaceMap contains an array with the list of xml namespaces and
* their prefixes. WebDAV uses a lot of XML with complex namespaces, so
* that can be used to make output a lot shorter.
*
* @param string $baseUri
* @param array $namespaceMap
*/
function
__construct
(
$baseUri
,
array
$namespaceMap
)
{
$this
->
baseUri
=
$baseUri
;
$this
->
namespaceMap
=
$namespaceMap
;
}
/**
* Generates a 'full' url based on a relative one.
*
* For relative urls, the base of the application is taken as the reference
* url, not the 'current url of the current request'.
*
* Absolute urls are left alone.
*
* @param string $path
* @return string
*/
function
fullUrl
(
$path
)
{
return
Uri\resolve
(
$this
->
baseUri
,
$path
);
}
/**
* Escape string for HTML output.
*
* @param string $input
* @return string
*/
function
h
(
$input
)
{
return
htmlspecialchars
(
$input
,
ENT_COMPAT
,
'UTF-8'
);
}
/**
* Generates a full <a>-tag.
*
* Url is automatically expanded. If label is not specified, we re-use the
* url.
*
* @param string $url
* @param string $label
* @return string
*/
function
link
(
$url
,
$label
=
null
)
{
$url
=
$this
->
h
(
$this
->
fullUrl
(
$url
));
return
'<a href="'
.
$url
.
'">'
.
(
$label
?
$this
->
h
(
$label
)
:
$url
)
.
'</a>'
;
}
/**
* This method takes an xml element in clark-notation, and turns it into a
* shortened version with a prefix, if it was a known namespace.
*
* @param string $element
* @return string
*/
function
xmlName
(
$element
)
{
list
(
$ns
,
$localName
)
=
XmlService
::
parseClarkNotation
(
$element
);
if
(
isset
(
$this
->
namespaceMap
[
$ns
]))
{
$propName
=
$this
->
namespaceMap
[
$ns
]
.
':'
.
$localName
;
}
else
{
$propName
=
$element
;
}
return
"<span title=
\"
"
.
$this
->
h
(
$element
)
.
"
\"
>"
.
$this
->
h
(
$propName
)
.
"</span>"
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Thu, Dec 5, 8:03 AM (4 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
913568
Default Alt Text
HtmlOutputHelper.php (2 KB)
Attached To
rDAVCAL DokuWiki DAVCal PlugIn
Event Timeline
Log In to Comment