mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-03 06:27:02 +03:00
Remote Synchronization (CardDAV) improvements:
now it supports address book url auto detection (and works with Google contacts, icloud and etc.)
This commit is contained in:
parent
92f2caf700
commit
1fb553e77e
249 changed files with 1338 additions and 1453 deletions
|
|
@ -0,0 +1,72 @@
|
|||
<?php
|
||||
|
||||
namespace SabreForRainLoop\CardDAV\Property;
|
||||
|
||||
use SabreForRainLoop\DAV;
|
||||
use SabreForRainLoop\CardDAV;
|
||||
|
||||
/**
|
||||
* Supported-address-data property
|
||||
*
|
||||
* This property is a representation of the supported-address-data property
|
||||
* in the CardDAV namespace.
|
||||
*
|
||||
* @copyright Copyright (C) 2007-2013 fruux GmbH (https://fruux.com/).
|
||||
* @author Evert Pot (http://evertpot.com/)
|
||||
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
|
||||
*/
|
||||
class SupportedAddressData extends DAV\Property {
|
||||
|
||||
/**
|
||||
* supported versions
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $supportedData = array();
|
||||
|
||||
/**
|
||||
* Creates the property
|
||||
*
|
||||
* @param array|null $supportedData
|
||||
*/
|
||||
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 DAV\Server $server
|
||||
* @param \DOMElement $node
|
||||
* @return void
|
||||
*/
|
||||
public function serialize(DAV\Server $server,\DOMElement $node) {
|
||||
|
||||
$doc = $node->ownerDocument;
|
||||
|
||||
$prefix =
|
||||
isset($server->xmlNamespaces[CardDAV\Plugin::NS_CARDDAV]) ?
|
||||
$server->xmlNamespaces[CardDAV\Plugin::NS_CARDDAV] :
|
||||
'card';
|
||||
|
||||
foreach($this->supportedData as $supported) {
|
||||
|
||||
$caldata = $doc->createElementNS(CardDAV\Plugin::NS_CARDDAV, $prefix . ':address-data-type');
|
||||
$caldata->setAttribute('content-type',$supported['contentType']);
|
||||
$caldata->setAttribute('version',$supported['version']);
|
||||
$node->appendChild($caldata);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue