friendica-addons/dav/SabreDAV/lib/Sabre/DAV/Property/SupportedLock.php

77 lines
2.3 KiB
PHP

<?php
/**
* This class represents the {DAV:}supportedlock property
*
* This property contains information about what kind of locks
* this server supports.
*
* @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_SupportedLock extends Sabre_DAV_Property {
/**
* supportsLocks
*
* @var mixed
*/
public $supportsLocks = false;
/**
* __construct
*
* @param mixed $supportsLocks
*/
public function __construct($supportsLocks) {
$this->supportsLocks = $supportsLocks;
}
/**
* serialize
*
* @param Sabre_DAV_Server $server
* @param DOMElement $prop
* @return void
*/
public function serialize(Sabre_DAV_Server $server,DOMElement $prop) {
$doc = $prop->ownerDocument;
if (!$this->supportsLocks) return null;
$lockEntry1 = $doc->createElementNS('DAV:','d:lockentry');
$lockEntry2 = $doc->createElementNS('DAV:','d:lockentry');
$prop->appendChild($lockEntry1);
$prop->appendChild($lockEntry2);
$lockScope1 = $doc->createElementNS('DAV:','d:lockscope');
$lockScope2 = $doc->createElementNS('DAV:','d:lockscope');
$lockType1 = $doc->createElementNS('DAV:','d:locktype');
$lockType2 = $doc->createElementNS('DAV:','d:locktype');
$lockEntry1->appendChild($lockScope1);
$lockEntry1->appendChild($lockType1);
$lockEntry2->appendChild($lockScope2);
$lockEntry2->appendChild($lockType2);
$lockScope1->appendChild($doc->createElementNS('DAV:','d:exclusive'));
$lockScope2->appendChild($doc->createElementNS('DAV:','d:shared'));
$lockType1->appendChild($doc->createElementNS('DAV:','d:write'));
$lockType2->appendChild($doc->createElementNS('DAV:','d:write'));
//$frag->appendXML('<d:lockentry><d:lockscope><d:exclusive /></d:lockscope><d:locktype><d:write /></d:locktype></d:lockentry>');
//$frag->appendXML('<d:lockentry><d:lockscope><d:shared /></d:lockscope><d:locktype><d:write /></d:locktype></d:lockentry>');
}
}