forked from friendica/friendica-addons
92 lines
2.2 KiB
PHP
92 lines
2.2 KiB
PHP
<?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);
|
|
}
|
|
|
|
}
|
|
|
|
}
|