%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/AddressBook.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 AddressBook extends \Sabre\CardDAV\AddressBook {
/* @var $oApiContactsManager \CApiContactsManager */
protected $oApiContactsManager;
public function getContactsManager()
{
if (!isset($this->oApiContactsManager))
{
$this->oApiContactsManager = \CApi::Manager('contacts');
}
return $this->oApiContactsManager;
}
/**
* Returns the full list of cards
*
* @return array
*/
public function getChildren() {
$objs = $this->carddavBackend->getCards($this->addressBookInfo['id']);
$aContactIds = $this->getSharedChildrenIds();
$children = array();
foreach($objs as $obj) {
if (!in_array($obj['uri'], $aContactIds))
{
$children[] = new \Sabre\CardDAV\Card($this->carddavBackend, $this->addressBookInfo, $obj);
}
}
return $children;
}
/**
* Returns the id list of shared cards
*
* @return array
*/
public function getSharedChildrenIds() {
$aContactIds = array();
$oAccount = \afterlogic\DAV\Utils::getCurrentAccount();
if ($oAccount)
{
$oContactsManager = $this->getContactsManager();
if ($oContactsManager)
{
$aContactIds = $oContactsManager->GetSharedContactIds($oAccount->IdUser, $oAccount->IdTenant);
}
}
return $aContactIds;
}
/**
* Returns the full list of cards
*
* @return array
*/
public function getChildrenByOffset($iOffset = 0, $iRequestLimit = 20) {
$objs = $this->carddavBackend->getCardsByOffset($this->addressBookInfo['id'], $iOffset, $iRequestLimit);
$children = array();
foreach($objs as $obj) {
$children[] = new \Sabre\CardDAV\Card($this->carddavBackend,$this->addressBookInfo,$obj);
}
return $children;
}
}