parent
fcc6d61fe1
commit
2086bc4be7
@ -0,0 +1,18 @@ |
||||
<?php |
||||
|
||||
/** |
||||
* Calendar interface |
||||
* |
||||
* Implement this interface to allow a node to be recognized as an calendar. |
||||
* |
||||
* @package Sabre |
||||
* @subpackage CalDAV |
||||
* @copyright Copyright (C) 2007-2011 Rooftop Solutions. All rights reserved. |
||||
* @author Evert Pot (http://www.rooftopsolutions.nl/) |
||||
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License |
||||
*/ |
||||
interface Sabre_CalDAV_ICalendar extends Sabre_DAV_ICollection { |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
<?php |
||||
|
||||
/** |
||||
* CalendarObject interface |
||||
/** |
||||
* Extend the ICalendarObject interface to allow your custom nodes to be picked up as |
||||
* CalendarObjects. |
||||
* |
||||
* Calendar objects are resources such as Events, Todo's or Journals. |
||||
* |
||||
* @package Sabre |
||||
* @subpackage CalDAV |
||||
* @copyright Copyright (C) 2007-2011 Rooftop Solutions. All rights reserved. |
||||
* @author Evert Pot (http://www.rooftopsolutions.nl/) |
||||
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License |
||||
*/ |
||||
interface Sabre_CalDAV_ICalendarObject extends Sabre_DAV_IFile { |
||||
|
||||
} |
||||
|
@ -0,0 +1,69 @@ |
||||
<?php |
||||
|
||||
/** |
||||
* Supported-address-data property |
||||
* |
||||
* This property is a representation of the supported-address-data property |
||||
* in the CardDAV namespace. |
||||
* |
||||
* @package Sabre |
||||
* @subpackage CardDAV |
||||
* @copyright Copyright (C) 2007-2011 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_CardDAV_Property_SupportedAddressData extends Sabre_DAV_Property { |
||||
|
||||
/** |
||||
* supported versions |
||||
* |
||||
* @var array |
||||
*/ |
||||
protected $supportedData = array(); |
||||
|
||||
/** |
||||
* Creates the property |
||||
* |
||||
* @param array $components |
||||
*/ |
||||
public function __construct(array $supportedData = null) { |
||||
|
||||
if (is_null($supportedData)) { |
||||
$supportedData = array( |
||||
array('contentType' => 'text/vcard', 'version' => '3.0'), |
||||
array('contentType' => 'text/vcard', 'version' => '4.0'), |
||||
); |
||||
} |
||||
|
||||
$this->supportedData = $supportedData; |
||||
|
||||
} |
||||
|
||||
/** |
||||
* Serializes the property in a DOMDocument |
||||
* |
||||
* @param Sabre_DAV_Server $server |
||||
* @param DOMElement $node |
||||
* @return void |
||||
*/ |
||||
public function serialize(Sabre_DAV_Server $server,DOMElement $node) { |
||||
|
||||
$doc = $node->ownerDocument; |
||||
|
||||
$prefix = |
||||
isset($server->xmlNamespaces[Sabre_CardDAV_Plugin::NS_CARDDAV]) ? |
||||
$server->xmlNamespaces[Sabre_CardDAV_Plugin::NS_CARDDAV] : |
||||
'card'; |
||||
|
||||
foreach($this->supportedData as $supported) { |
||||
|
||||
$caldata = $doc->createElementNS(Sabre_CardDAV_Plugin::NS_CARDDAV, $prefix . ':address-data-type'); |
||||
$caldata->setAttribute('content-type',$supported['contentType']); |
||||
$caldata->setAttribute('version',$supported['version']); |
||||
$node->appendChild($caldata); |
||||
|
||||
} |
||||
|
||||
} |
||||
|
||||
} |
@ -0,0 +1,120 @@ |
||||
<?php |
||||
|
||||
/** |
||||
* SimpleFile |
||||
* |
||||
* The 'SimpleFile' class is used to easily add read-only immutable files to |
||||
* the directory structure. One usecase would be to add a 'readme.txt' to a |
||||
* root of a webserver with some standard content. |
||||
* |
||||
* @package Sabre |
||||
* @subpackage DAV |
||||
* @copyright Copyright (C) 2007-2011 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_SimpleFile extends Sabre_DAV_File { |
||||
|
||||
/** |
||||
* File contents |
||||
* |
||||
* @var string |
||||
*/ |
||||
protected $contents = array(); |
||||
|
||||
/** |
||||
* Name of this resource |
||||
* |
||||
* @var string |
||||
*/ |
||||
protected $name; |
||||
|
||||
/** |
||||
* A mimetype, such as 'text/plain' or 'text/html' |
||||
* |
||||
* @var string |
||||
*/ |
||||
protected $mimeType; |
||||
|
||||
/** |
||||
* Creates this node |
||||
* |
||||
* The name of the node must be passed, as well as the contents of the |
||||
* file. |
||||
* |
||||
* @param string $name |
||||
* @param string $contents |
||||
*/ |
||||
public function __construct($name, $contents, $mimeType = null) { |
||||
|
||||
$this->name = $name; |
||||
$this->contents = $contents; |
||||
$this->mimeType = $mimeType; |
||||
|
||||
} |
||||
|
||||
/** |
||||
* Returns the node name for this file. |
||||
* |
||||
* This name is used to construct the url. |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getName() { |
||||
|
||||
return $this->name; |
||||
|
||||
} |
||||
|
||||
/** |
||||
* Returns the data |
||||
* |
||||
* This method may either return a string or a readable stream resource |
||||
* |
||||
* @return mixed |
||||
*/ |
||||
public function get() { |
||||
|
||||
return $this->contents; |
||||
|
||||
} |
||||
|
||||
/** |
||||
* Returns the size of the file, in bytes. |
||||
* |
||||
* @return int |
||||
*/ |
||||
public function getSize() { |
||||
|
||||
return strlen($this->contents); |
||||
|
||||
} |
||||
|
||||
/** |
||||
* Returns the ETag for a file |
||||
* |
||||
* An ETag is a unique identifier representing the current version of the file. If the file changes, the ETag MUST change. |
||||
* The ETag is an arbritrary string, but MUST be surrounded by double-quotes. |
||||
* |
||||
* Return null if the ETag can not effectively be determined |
||||
*/ |
||||
public function getETag() { |
||||
|
||||
return '"' . md5($this->contents) . '"'; |
||||
|
||||
} |
||||
|
||||
/** |
||||
* Returns the mime-type for a file |
||||
* |
||||
* If null is returned, we'll assume application/octet-stream |
||||
*/ |
||||
public function getContentType() { |
||||
|
||||
return $this->mimeType; |
||||
|
||||
} |
||||
|
||||
} |
||||
|
||||
?> |
Loading…
Reference in new issue