%PDF- %PDF-
Direktori : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/DAV/CardDAV/ |
Current File : //www/varak.net/mail2.varak.net_old/libraries/afterlogic/DAV/CardDAV/GAddressBooks.php |
<?php /* * Copyright 2004-2014, AfterLogic Corp. * Licensed under AGPLv3 license or AfterLogic license * if commercial version of the product was purchased. * See the LICENSE file for a full license statement. */ namespace afterlogic\DAV\CardDAV; class GAddressBooks extends \Sabre\DAV\Collection implements \Sabre\CardDAV\IDirectory, \Sabre\DAV\IProperties { /** * @var string */ private $name; /** * @var array */ private $addressBookInfo; /** * @var CAccount */ private $account; /** * Constructor */ public function __construct($name, $displayname = '') { $this->name = $name; $this->account = null; $this->addressBookInfo['{DAV:}displayname'] = (empty($displayname)) ? $name : $displayname; } public function getAccount() { if ($this->account == null) { $sUser = \afterlogic\DAV\Auth\Backend::getInstance()->getCurrentUser(); $this->account = \afterlogic\DAV\Utils::GetAccountByLogin($sUser); } return $this->account; } /** * @return string */ public function getName() { return $this->name; } /** * @return array */ public function getChildren() { $oAccount = $this->getAccount(); $aCards = array(); $oApiCapabilityManager = /* @var \CApiCapabilityManager */ \CApi::Manager('capability'); if ($oAccount instanceof \CAccount && $oApiCapabilityManager->IsGlobalContactsSupported($oAccount)) { $aContacts = array(); $oApiGcontactManager = /* @var \CApiGcontactsManager */ \CApi::Manager('gcontacts'); if ($oApiGcontactManager) { $aContacts = $oApiGcontactManager->GetContactItems($oAccount, \EContactSortField::EMail, \ESortOrder::ASC, 0, 9999); } foreach($aContacts as $oContact) { $sUID = md5($oContact->Email .'-'. $oContact->Id); $vCard = new \Sabre\VObject\Component\VCard( array( 'VERSION' => '3.0', 'UID' => $sUID, 'FN' => $oContact->Name, ) ); $vCard->add( 'EMAIL', $oContact->Email, array( 'type' => array( 'work' ), 'pref' => 1, ) ); $aCards[] = new GCard( array( 'uri' => md5($oContact->Email .'-'. $oContact->Id) . '.vcf', 'carddata' => $vCard->serialize(), 'lastmodified' => strtotime('2001-01-01 00:00:00') ) ); } } return $aCards; } public function getProperties($properties) { $response = array(); foreach($properties as $propertyName) { if (isset($this->addressBookInfo[$propertyName])) { $response[$propertyName] = $this->addressBookInfo[$propertyName]; } } return $response; } /* @param array $mutations * @return bool|array */ public function updateProperties($mutations) { return false; } }