diff options
Diffstat (limited to '3rdparty/Sabre/DAV/Property/Href.php')
-rwxr-xr-x | 3rdparty/Sabre/DAV/Property/Href.php | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/3rdparty/Sabre/DAV/Property/Href.php b/3rdparty/Sabre/DAV/Property/Href.php new file mode 100755 index 00000000000..dac564f24d7 --- /dev/null +++ b/3rdparty/Sabre/DAV/Property/Href.php @@ -0,0 +1,91 @@ +<?php + +/** + * Href property + * + * The href property represents a url within a {DAV:}href element. + * This is used by many WebDAV extensions, but not really within the WebDAV core spec + * + * @package Sabre + * @subpackage DAV + * @copyright Copyright (C) 2007-2012 Rooftop Solutions. All rights reserved. + * @author Evert Pot (http://www.rooftopsolutions.nl/) + * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + */ +class Sabre_DAV_Property_Href extends Sabre_DAV_Property implements Sabre_DAV_Property_IHref { + + /** + * href + * + * @var string + */ + private $href; + + /** + * Automatically prefix the url with the server base directory + * + * @var bool + */ + private $autoPrefix = true; + + /** + * __construct + * + * @param string $href + * @param bool $autoPrefix + */ + public function __construct($href, $autoPrefix = true) { + + $this->href = $href; + $this->autoPrefix = $autoPrefix; + + } + + /** + * Returns the uri + * + * @return string + */ + public function getHref() { + + return $this->href; + + } + + /** + * Serializes this property. + * + * It will additionally prepend the href property with the server's base uri. + * + * @param Sabre_DAV_Server $server + * @param DOMElement $dom + * @return void + */ + public function serialize(Sabre_DAV_Server $server, DOMElement $dom) { + + $prefix = $server->xmlNamespaces['DAV:']; + + $elem = $dom->ownerDocument->createElement($prefix . ':href'); + $elem->nodeValue = ($this->autoPrefix?$server->getBaseUri():'') . $this->href; + $dom->appendChild($elem); + + } + + /** + * Unserializes this property from a DOM Element + * + * This method returns an instance of this class. + * It will only decode {DAV:}href values. For non-compatible elements null will be returned. + * + * @param DOMElement $dom + * @return Sabre_DAV_Property_Href + */ + static function unserialize(DOMElement $dom) { + + if (Sabre_DAV_XMLUtil::toClarkNotation($dom->firstChild)==='{DAV:}href') { + return new self($dom->firstChild->textContent,false); + } + + } + +} |