- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sync/factories/factoriescollection.php
- Класс: BitrixCalendarSyncFactoriesFactoriesCollection
- Вызов: FactoriesCollection::createBySection
static function createBySection(Section $section): FactoriesCollection
{
$collection = [];
if (!Loader::includeModule('dav'))
{
return new self($collection);
}
$links = SectionConnectionTable::query()
->setSelect(['*', 'CONNECTION'])
->where('SECTION_ID', $section->getId())
->where('CONNECTION.IS_DELETED', 'N')
->whereIn('CONNECTION.ACCOUNT_TYPE', [
SyncGoogleFactory::SERVICE_NAME,
SyncIcloudFactory::SERVICE_NAME,
SyncOffice365Factory::SERVICE_NAME,
])
->exec()
;
while ($link = $links->fetchObject())
{
$connection = (new SyncBuildersBuilderConnectionFromDM($link->getConnection()))->build();
$context = new Context([
'section_sync_data' => $link,
]);
$collection[] = FactoryBuilder::create(
$connection->getVendor()->getCode(),
$connection,
$context
);
}
return new self(array_filter($collection));
}