%PDF- %PDF-
| Direktori : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/common/managers/contacts/ |
| Current File : //www/varak.net/mail2.varak.net_old/libraries/afterlogic/common/managers/contacts/manager.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.
*/
/**
* @package Contacts
*/
class CApiContactsManager extends AApiManager
{
/*
* @var $oApiContactsManager CApiMaincontactsManager
*/
private $oApiContactsManager;
/*
* @var $oApiGContactsManager CApiGcontactsManager
*/
private $oApiGContactsManager;
/*
* @var $oApiContactsManagerDAV CApiMaincontactsManager
*/
private $oApiContactsManagerDAV;
/**
* @param CApiGlobalManager &$oManager
*/
public function __construct(CApiGlobalManager &$oManager, $sForcedStorage = '')
{
parent::__construct('contacts', $oManager, $sForcedStorage);
$this->oApiGContactsManager = CApi::Manager('gcontacts');
$this->oApiContactsManager = CApi::Manager('maincontacts');
$this->oApiContactsManagerDAV = CApi::Manager('maincontacts', 'sabredav');
// $this->oApiContactsManagerDAV = CApi::Manager('maincontacts', 'carddav');
}
/**
* @return CContactListItem
*/
public function NewContactListItemObject()
{
return new CContactListItem();
}
/**
* @return CContact
*/
public function NewContactObject()
{
return new CContact();
}
/**
* @return CGroup
*/
public function NewGroupObject()
{
return new CGroup();
}
/**
* @param int $iUserId
* @param mixed $mContactId
* @param bool $bIgnoreHideInGab = false
* @param int $iSharedTenantId = null
* @return CContact | bool
*/
public function GetContactById($iUserId, $mContactId, $bIgnoreHideInGab = false, $iSharedTenantId = null)
{
return $this->oApiContactsManager->GetContactById($iUserId, $mContactId, $bIgnoreHideInGab, $iSharedTenantId);
}
/**
* @param int $iUserId
* @param string $sEmail
* @return CContact | bool
*/
public function GetContactByEmail($iUserId, $sEmail)
{
return $this->oApiContactsManager->GetContactByEmail($iUserId, $sEmail);
}
/**
* @param int $iUserId
* @param string $sContactStrId
* @param int $iSharedTenantId = null
* @return CContact
*/
public function GetContactByStrId($iUserId, $sContactStrId, $iSharedTenantId = null)
{
return $this->oApiContactsManager->GetContactByStrId($iUserId, $sContactStrId, $iSharedTenantId);
}
/**
* @param int $iUserId
* @param int $iSharedTenantId = null
* @return array
*/
public function GetSharedContactIds($iUserId, $iSharedTenantId = null)
{
return $this->oApiContactsManager->GetSharedContactIds($iUserId, $iSharedTenantId);
}
/**
* @param CContact $oContact
* @return array | bool
*/
public function GetContactGroupsIds($oContact)
{
return $this->oApiContactsManager->GetContactGroupsIds($oContact);
}
/**
* @param int $iUserId
* @param mixed $mGroupId
* @return CGroup
*/
public function GetGroupById($iUserId, $mGroupId)
{
return $this->oApiContactsManager->GetGroupById($iUserId, $mGroupId);
}
/**
* @param int $iUserId
* @param string $sGroupStrId
* @return CGroup
*/
public function GetGroupByStrId($iUserId, $sGroupStrId)
{
return $this->oApiContactsManager->GetGroupByStrId($iUserId, $sGroupStrId);
}
/**
* @param int $iUserId
* @param string $sName
* @return CGroup
*/
public function GetGroupByName($iUserId, $sName)
{
return $this->oApiContactsManager->GetGroupByName($iUserId, $sName);
}
/**
* @param CContact $oContact
* @return bool
*/
public function UpdateContact($oContact, $bUpdateFromGlobal = true)
{
$res1 = $res2 = false;
if ($oContact)
{
if ($oContact->Type === EContactType::Personal)
{
$res1 = $this->oApiContactsManager->UpdateContact($oContact);
}
else if ($oContact->Type === EContactType::Global_)
{
$res1 = $this->oApiContactsManager->UpdateContact($oContact);
if ($res1 && $bUpdateFromGlobal)
{
$oGlobalContact = $this->oApiContactsManager->GetMyGlobalContact($oContact->IdUser);
if ($oGlobalContact)
{
if ($oGlobalContact->CompareAndComputedByNewGlobalContact($oContact))
{
$res1 = $this->oApiGContactsManager->UpdateContact($oGlobalContact);
}
else
{
$res1 = true;
}
}
}
}
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
{
$this->UpdateContactGroupsIdsWhithNames($oContact);
$res2 = $this->oApiContactsManagerDAV->UpdateContact($oContact);
}
else
{
$res2 = true;
}
}
return ($res1 && $res2);
}
/**
* @param CContact $oContact
* @param int $iUserId
* @return string
*/
public function UpdateContactUserId($oContact, $iUserId)
{
$res1 = $res2 = false;
if ($oContact)
{
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
{
$res2 = $this->oApiContactsManagerDAV->UpdateContactUserId($oContact, $iUserId);
}
else
{
$res2 = true;
}
$res1 = $this->oApiContactsManager->UpdateContactUserId($oContact, $iUserId);
}
return ($res1 && $res2);
}
/**
* @param CGroup $oGroup
* @return bool
*/
public function UpdateGroup($oGroup)
{
$res1 = $res2 = false;
$oGroupDb = $this->oApiContactsManager->GetGroupById($oGroup->IdUser, $oGroup->IdGroup);
$res1 = $this->oApiContactsManager->UpdateGroup($oGroup);
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts') && $oGroupDb)
{
$oGroup->IdGroup = $oGroupDb->Name;
$oContactItems = $this->oApiContactsManager->GetContactItems($oGroup->IdUser, EContactSortField::EMail,
ESortOrder::ASC, 0, 999, '', '', $oGroupDb->IdGroup);
if (is_array($oContactItems))
{
foreach ($oContactItems as $oContactItem)
{
$oContact = $this->oApiContactsManagerDAV->GetContactById($oGroup->IdUser, $oContactItem->IdStr);
if ($oContact)
{
$aGroupsIds = array();
foreach($oContact->GroupsIds as $sGroupId)
{
$sGroupId = (string) $sGroupId;
if ($sGroupId === (string) $oGroup->IdGroup)
{
$sGroupId = $oGroup->Name;
}
$aGroupsIds[] = $sGroupId;
}
$oContact->GroupsIds = $aGroupsIds;
$this->oApiContactsManagerDAV->UpdateContact($oContact);
}
}
}
$res2 = true;
}
else
{
$res2 = true;
}
return ($res1 && $res2);
}
/**
* @param int $iUserId
* @param string $sSearch = ''
* @param string $sFirstCharacter = ''
* @param int $iGroupId = 0
* @param int $iTenantId = null
* @param bool $bAll = false
* @return int
*/
public function GetContactItemsCount($iUserId, $sSearch = '', $sFirstCharacter = '', $iGroupId = 0, $iTenantId = null, $bAll = false)
{
return $this->oApiContactsManager->GetContactItemsCount($iUserId, $sSearch, $sFirstCharacter, $iGroupId, $iTenantId, $bAll);
}
/**
* @param int $iUserId
* @param int $iOffset = 0
* @param int $iRequestLimit = 20
* @return bool | array
*/
public function GetContactItemsWithoutOrder($iUserId, $iOffset = 0, $iRequestLimit = 20)
{
return $this->oApiContactsManager->GetContactItemsWithoutOrder($iUserId, $iOffset, $iRequestLimit);
}
/**
* @param string $mUserId
* @param int $iSortField = EContactSortField::EMail,
* @param int $iSortOrder = ESortOrder::ASC,
* @param int $iOffset = 0
* @param int $iRequestLimit = 20
* @param string $sSearch = ''
* @param string $sFirstCharacter = ''
* @param string $mGroupId = ''
* @param int $iTenantId = null
* @param bool $bAll = false
* @return bool | array
*/
public function GetContactItems($mUserId,
$iSortField = EContactSortField::EMail, $iSortOrder = ESortOrder::ASC,
$iOffset = 0, $iRequestLimit = 20, $sSearch = '', $sFirstCharacter = '', $mGroupId = '', $iTenantId = null, $bAll = false)
{
return $this->oApiContactsManager->GetContactItems($mUserId, $iSortField, $iSortOrder,
$iOffset, $iRequestLimit, $sSearch, $sFirstCharacter, $mGroupId, $iTenantId, $bAll);
}
/**
* @param int $iUserId
* @param string $sSearch = ''
* @param string $sFirstCharacter = ''
* @return int
*/
public function GetGroupItemsCount($iUserId, $sSearch = '', $sFirstCharacter = '')
{
return $this->oApiContactsManager->GetGroupItemsCount($iUserId, $sSearch, $sFirstCharacter);
}
/**
* @param int $iUserId
* @param int $iSortField = EContactSortField::Name,
* @param int $iSortOrder = ESortOrder::ASC,
* @param int $iOffset = 0
* @param int $iRequestLimit = 20
* @param string $sSearch = ''
* @param string $sFirstCharacter = ''
* @param int $iContactId = 0
* @return bool | array
*/
public function GetGroupItems($iUserId,
$iSortField = EContactSortField::Name, $iSortOrder = ESortOrder::ASC,
$iOffset = 0, $iRequestLimit = 20, $sSearch = '', $sFirstCharacter = '', $iContactId = 0)
{
return $this->oApiContactsManager->GetGroupItems($iUserId, $iSortField, $iSortOrder,
$iOffset, $iRequestLimit, $sSearch, $sFirstCharacter, $iContactId);
}
/**
* @param CAccount $oAccount
* @param string $sSearch = ''
* @param int $iRequestLimit = 20
* @param bool $bGlobalOnly = false
* @param bool $bPhoneOnly = false
* @param int $iSharedTenantId = null
*
* @return bool | array
*/
public function GetSuggestItems($oAccount, $sSearch = '', $iRequestLimit = 20, $bGlobalOnly = false, $bPhoneOnly = false, $iSharedTenantId = null)
{
return $this->oApiContactsManager->GetSuggestItems($oAccount, $sSearch, $iRequestLimit, $bGlobalOnly, $bPhoneOnly, $iSharedTenantId);
}
/**
* @param CContact $oContact
* @return bool
*/
public function CreateContact($oContact)
{
$res1 = $res2 = false;
$res1 = $this->oApiContactsManager->CreateContact($oContact);
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
{
$this->UpdateContactGroupsIdsWhithNames($oContact);
$res2 = $this->oApiContactsManagerDAV->CreateContact($oContact);
}
else
{
$res2 = true;
}
return ($res1 && $res2);
}
/**
* @param CGroup $oGroup
* @return bool
*/
public function CreateGroup($oGroup)
{
$res1 = $res2 = false;
$res1 = $this->oApiContactsManager->CreateGroup($oGroup);
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
{
$res2 = $this->oApiContactsManagerDAV->CreateGroup($oGroup);
}
else
{
$res2 = true;
}
return ($res1 && $res2);
}
/**
* @param int $iUserId
* @param array $aContactsIds
* @param int $iTenantId = null
* @return bool
*/
public function DeleteContacts($iUserId, $aContactsIds, $iTenantId = null)
{
$aContactsStrIds = array();
foreach ($aContactsIds as $iContactsId)
{
$oContact = $this->oApiContactsManager->GetContactById($iUserId, $iContactsId, $iTenantId);
if ($oContact)
{
$aContactsStrIds[] = $oContact->IdContactStr;
}
}
$res1 = $res2 = false;
$res1 = $this->oApiContactsManager->DeleteContacts($iUserId, $aContactsIds, $iTenantId);
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts') && is_null($iTenantId))
{
$res2 = $this->oApiContactsManagerDAV->DeleteContacts($iUserId, $aContactsStrIds);
}
else
{
$res2 = true;
}
return ($res1 && $res2);
}
/**
* @param int $iUserId
* @param array $aContactsIds
* @return bool
*/
public function DeleteSuggestContacts($iUserId, $aContactsIds)
{
$aContactsStrIds = array();
foreach ($aContactsIds as $iContactsId)
{
$oContact = $this->oApiContactsManager->GetContactById($iUserId, $iContactsId);
if ($oContact)
{
$aContactsStrIds[] = $oContact->IdContactStr;
}
}
$res1 = $res2 = false;
$res1 = $this->oApiContactsManager->DeleteSuggestContacts($iUserId, $aContactsIds);
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
{
$res2 = $this->oApiContactsManagerDAV->DeleteSuggestContacts($iUserId, $aContactsStrIds);
}
else
{
$res2 = true;
}
return ($res1 && $res2);
}
/**
* @param int $iUserId
* @param array $aGroupsIds
* @return bool
*/
public function DeleteGroups($iUserId, $aGroupsIds)
{
$res1 = $res2 = false;
$res1 = $this->oApiContactsManager->DeleteGroups($iUserId, $aGroupsIds);
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
{
$res2 = $this->oApiContactsManagerDAV->DeleteGroups($iUserId, $aGroupsIds);
}
else
{
$res2 = true;
}
return ($res1 && $res2);
}
/**
* @param int $iUserId
* @param mixed $mGroupId
* @return bool
*/
public function DeleteGroup($iUserId, $mGroupId)
{
return $this->oApiContactsManager->DeleteGroup($iUserId, $mGroupId);
}
/**
* @param int $iUserId
* @param array $aEmails
* @return bool
*/
function UpdateSuggestTable($iUserId, $aEmails)
{
return $this->oApiContactsManager->UpdateSuggestTable($iUserId, $aEmails);
}
/**
* @param int $iUserId
* @param string $sSyncType
* @param string $sTempFileName
* @param int $iParsedCount
* @return int | false
*/
public function Import($iUserId, $sSyncType, $sTempFileName, &$iParsedCount)
{
if ($sSyncType === \EContactFileType::CSV)
{
$this->inc('helpers.'.$sSyncType.'.formatter');
$this->inc('helpers.'.$sSyncType.'.parser');
$this->inc('helpers.sync.'.$sSyncType);
$sSyncClass = 'CApi'.ucfirst($this->GetManagerName()).'Sync'.ucfirst($sSyncType);
if (class_exists($sSyncClass))
{
$oSync = new $sSyncClass($this);
return $oSync->Import($iUserId, $sTempFileName, $iParsedCount);
}
}
else if ($sSyncType === \EContactFileType::VCF)
{
// You can either pass a readable stream, or a string.
$oHandler = fopen($sTempFileName, 'r');
$oSplitter = new \Sabre\VObject\Splitter\VCard($oHandler);
while($oVCard = $oSplitter->getNext())
{
$oContact = new \CContact();
$oContact->InitFromVCardObject($iUserId, $oVCard);
if ($this->CreateContact($oContact))
{
$iParsedCount++;
}
}
return $iParsedCount;
}
return false;
}
/**
* @param int $iUserId
* @param string $sSyncType
* @return string | bool
*/
public function Export($iUserId, $sSyncType)
{
if ($sSyncType === \EContactFileType::CSV)
{
$this->inc('helpers.'.$sSyncType.'.formatter');
$this->inc('helpers.'.$sSyncType.'.parser');
$this->inc('helpers.sync.'.$sSyncType);
$sSyncClass = 'CApi'.ucfirst($this->GetManagerName()).'Sync'.ucfirst($sSyncType);
if (class_exists($sSyncClass))
{
$oSync = new $sSyncClass($this);
return $oSync->Export($iUserId);
}
}
else if ($sSyncType === \EContactFileType::VCF)
{
$sOutput = '';
$aContactItems = $this->oApiContactsManagerDAV->GetContactItemObjects($iUserId);
if (is_array($aContactItems))
{
foreach ($aContactItems as $oContactItem)
{
$sOutput .= \Sabre\VObject\Reader::read($oContactItem->get())->serialize();
}
}
return $sOutput;
}
return false;
}
/**
* @param int $iUserId
* @param array $aContactsIds
* @return bool
*/
// public function DeleteContactsExceptIds($iUserId, $aContactsIds)
// {
// $aContactsStrIds = array();
// foreach ($aContactsIds as $iContactsId)
// {
// $oContact = $this->oApiContactsManager->GetContactById($iUserId, $iContactsId);
// if ($oContact)
// {
// $aContactsStrIds[] = $oContact->IdContactStr;
// }
// }
//
// $res1 = $res2 = false;
//
// $res1 = $this->oApiContactsManager->DeleteContactsExceptIds($iUserId, $aContactsIds);
// if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
// {
// $res2 = $this->oApiContactsManagerSabreDAV->DeleteContactsExceptIds($iUserId, $aContactsStrIds);
// }
// else
// {
// $res2 = true;
// }
//
// return ($res1 && $res2);
// }
/**
* @param int $iUserId
* @param array $aGroupIds
* @return bool
*/
// public function DeleteGroupsExceptIds($iUserId, $aGroupIds)
// {
// $res1 = $res2 = false;
//
// $res1 = $this->oApiContactsManager->DeleteGroupsExceptIds($iUserId, $aGroupIds);
// if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
// {
// $res2 = $this->oApiContactsManagerSabreDAV->DeleteGroupsExceptIds($iUserId, $aGroupIds);
// }
// else
// {
// $res2 = true;
// }
//
// return ($res1 && $res2);
// }
/**
* @param CAccount $oAccount
* @return bool
*/
public function ClearAllContactsAndGroups($oAccount)
{
$res1 = $res2 = false;
$res1 = $this->oApiContactsManager->ClearAllContactsAndGroups($oAccount);
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
{
$res2 = $this->oApiContactsManagerDAV->ClearAllContactsAndGroups($oAccount);
}
else
{
$res2 = true;
}
return ($res1 && $res2);
}
/**
* @return bool
*/
public function FlushContacts()
{
return $this->oApiContactsManager->FlushContacts();
}
public function UpdateContactGroupsIdsWhithNames(&$oContact)
{
$aResult = array();
foreach ($oContact->GroupsIds as $mGroupId)
{
$oGroup = $this->oApiContactsManager->GetGroupById($oContact->IdUser, $mGroupId);
if ($oGroup)
{
$aResult[] = (string) $oGroup->Name;
}
}
$oContact->GroupsIds = $aResult;
}
/**
* @param CGroup $oGroup
* @param array $aContactIds
* @return bool
*/
public function AddContactsToGroup($oGroup, $aContactIds)
{
$res1 = $res2 = false;
$aContactsStrIds = array();
foreach ($aContactIds as $iContactId)
{
$oContact = $this->oApiContactsManager->GetContactById($oGroup->IdUser, $iContactId);
if ($oContact)
{
$aContactsStrIds[] = $oContact->IdContactStr;
}
}
$res1 = $this->oApiContactsManager->AddContactsToGroup($oGroup, $aContactIds);
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
{
$res2 = $this->oApiContactsManagerDAV->AddContactsToGroup($oGroup, $aContactsStrIds);
}
else
{
$res2 = true;
}
return ($res1 && $res2);
}
/**
* @param CAccount $oAccount
* @param CGroup $oGroup
* @param array $aContactIds
* @return bool
*/
public function AddGlobalContactsToGroup($oAccount, $oGroup, $aContactIds)
{
if ($this->oApiGContactsManager)
{
$aNewContactIds = array();
foreach ($aContactIds as $mId)
{
$mContactId = $this->oApiContactsManager->ConvertedContactLocalId($oAccount, $mId, EContactType::Global_);
if (!$mContactId)
{
$oGlobalContact = $this->oApiGContactsManager->GetContactById($oAccount, $mId);
/* @var $oGlobalContact CContact */
if ($oGlobalContact)
{
$oGlobalContact->IdUser = $oAccount->IdUser;
$oGlobalContact->IdDomain = $oAccount->IdDomain;
$oGlobalContact->IdTenant = $oAccount->IdTenant;
$oGlobalContact->Type = EContactType::Global_;
$oGlobalContact->IdTypeLink = $mId;
$bResult = $this->CreateContact($oGlobalContact);
if ($bResult)
{
$aNewContactIds[] = $oGlobalContact->IdContact;
}
}
}
else
{
$aNewContactIds[] = $mContactId;
}
}
if (0 < count($aNewContactIds))
{
return $this->AddContactsToGroup($oGroup, $aNewContactIds);
}
}
}
/**
* @param CGroup $oGroup
* @param array $aContactIds
* @return bool
*/
public function RemoveContactsFromGroup($oGroup, $aContactIds)
{
$res1 = $res2 = false;
$aContactsStrIds = array();
foreach ($aContactIds as $iContactId)
{
$oContact = $this->oApiContactsManager->GetContactById($oGroup->IdUser, $iContactId);
if ($oContact)
{
$aContactsStrIds[] = $oContact->IdContactStr;
}
}
$res1 = $this->oApiContactsManager->RemoveContactsFromGroup($oGroup, $aContactIds);
if ('sabredav' !== CApi::GetManager()->GetStorageByType('contacts'))
{
$res2 = $this->oApiContactsManagerDAV->RemoveContactsFromGroup($oGroup, $aContactsStrIds);
}
else
{
$res2 = true;
}
return ($res1 && $res2);
}
/**
* @param CAccount $oAccount
* @return bool
*/
public function SynchronizeExternalContacts($oAccount, $bSelfOnly = false)
{
$aIds = array();
if ($this->oApiGContactsManager)
{
if ($bSelfOnly)
{
$oGlobalContact = $this->oApiGContactsManager->GetContactByTypeId($oAccount, $oAccount->IdUser, true);
/* @var $oGlobalContact CContact */
if ($oGlobalContact)
{
$mContactId = $this->oApiContactsManager->ConvertedContactLocalId($oAccount,
$oGlobalContact->IdContact, EContactType::Global_);
if ($mContactId)
{
$aIds[$mContactId] = $oGlobalContact->IdContact;
}
}
}
else
{
$aIds = $this->oApiContactsManager->ConvertedContactLocalIdCollection($oAccount, EContactType::Global_);
}
if ($aIds && is_array($aIds) && 0 < count($aIds))
{
CApi::Log('SynchronizeExternalContacts: '.count($aIds));
$aLinkedContact = $this->oApiContactsManager->ContactIdsLinkedToGroups(array_keys($aIds));
$aLinkedContact = is_array($aLinkedContact) ? $aLinkedContact : array();
$aContactToDelete = array();
foreach ($aIds as $iLocalContactId => $sGlobalId)
{
if (in_array($iLocalContactId, $aLinkedContact))
{
$oGlobalContact = $this->oApiGContactsManager->GetContactById($oAccount, $sGlobalId, true);
if ($oGlobalContact)
{
$oLocalGlobalContact = $this->oApiContactsManager->GetContactById($oAccount->IdUser, $iLocalContactId, true);
if ($oLocalGlobalContact && EContactType::Global_ === $oLocalGlobalContact->Type)
{
if ($oLocalGlobalContact->CompareAndComputedByNewGlobalContact($oGlobalContact))
{
$this->UpdateContact($oLocalGlobalContact, false);
}
}
}
else
{
$aContactToDelete[] = $iLocalContactId;
}
}
else
{
$aContactToDelete[] = $iLocalContactId;
}
}
if (0 < count($aContactToDelete))
{
$this->DeleteContacts($oAccount->IdUser, $aContactToDelete);
}
return true;
}
else
{
CApi::Log('SynchronizeExternalContacts: none');
}
}
return true;
}
/**
* @param int $iUserId
* @param int $iGroupId
* @return bool
*/
public function GetGroupEvents($iUserId, $iGroupId)
{
$aResult = array();
$aEvents = $this->oApiContactsManager->GetGroupEvents($iGroupId);
if (is_array($aEvents) && 0 < count($aEvents))
{
$oApiUsersManager = CApi::Manager('users');
$iAccountId = $oApiUsersManager->GetDefaultAccountId($iUserId);
$oAccount = $oApiUsersManager->GetAccountById($iAccountId);
if ($oAccount)
{
$oApiCalendarManager = CApi::Manager('calendar');
foreach ($aEvents as $aEvent)
{
$aResult[] = $oApiCalendarManager->GetBaseEvent($oAccount, $aEvent['id_calendar'], $aEvent['id_event']);
}
}
}
return $aResult;
}
/**
* @param int $iGroupId
* @param string $sCalendarId
* @param string $sEventId
* @return bool
*/
public function GetGroupEvent($sCalendarId, $sEventId)
{
$aResult = false;
try
{
$aResult = $this->oApiContactsManager->GetGroupEvent($sCalendarId, $sEventId);
}
catch (CApiBaseException $oException)
{
$aResult = false;
$this->setLastException($oException);
}
return $aResult;
}
/**
* @param int $iGroupId
* @param string $sCalendarId
* @param string $sEventId
* @return bool
*/
public function IsGroupEventExists($iGroupId, $sCalendarId, $sEventId)
{
$aResult = false;
try
{
$aEvent = $this->GetGroupEvent($iGroupId, $sCalendarId, $sEventId);
if (is_array($aEvent) && 0 < count($aEvent))
{
$aResult = true;
}
}
catch (CApiBaseException $oException)
{
$aResult = false;
$this->setLastException($oException);
}
return $aResult;
}
/**
* @param int $iGroupId
* @param string $sCalendarId
* @param string $sEventId
* @return bool
*/
public function AddEventToGroup($iGroupId, $sCalendarId, $sEventId)
{
return $this->oApiContactsManager->AddEventToGroup($iGroupId, $sCalendarId, $sEventId);
}
/**
* @param int $iGroupId
* @param string $sCalendarId
* @param string $sEventId
* @return bool
*/
public function RemoveEventFromGroup($iGroupId, $sCalendarId, $sEventId)
{
return $this->oApiContactsManager->RemoveEventFromGroup($iGroupId, $sCalendarId, $sEventId);
}
/**
* @param string $sCalendarId
* @param string $sEventId
* @return bool
*/
public function RemoveEventFromAllGroups($sCalendarId, $sEventId)
{
return $this->oApiContactsManager->RemoveEventFromAllGroups($sCalendarId, $sEventId);
}
}