- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/integration/socialnetwork/group.php
- Класс: BitrixTasksIntegrationSocialNetworkGroup
- Вызов: Group::getData
static function getData(array $groupIds, array $select = [], array $params = []): array
{
$groupIds = array_unique(array_filter($groupIds, 'intval'));
if (empty($groupIds) || !static::includeModule())
{
return [];
}
$defaultSelect = ['ID', 'NAME'];
$parameters = [
'select' => (empty($select) ? $defaultSelect : array_merge($defaultSelect, $select)),
'filter' => ['ID' => $groupIds],
];
$expanded = (User::getOption('opened_projects') ?: []);
// todo: make static caches here
$groups = [];
$groupResult = WorkgroupTable::getList($parameters);
while ($group = $groupResult->fetch())
{
$groupId = $group['ID'];
$group['EXPANDED'] = !(array_key_exists($groupId, $expanded) && $expanded[$groupId] === "false");
$groups[$groupId] = $group;
}
if (
!empty($groups)
&& isset($params['MODE'])
&& mb_strtolower($params['MODE']) === 'mobile'
)
{
$additionalData = Workgroup::getAdditionalData([
'ids' => array_keys($groups),
'features' => BitrixMobileProjectHelper::getMobileFeatures(),
'mandatoryFeatures' => BitrixMobileProjectHelper::getMobileMandatoryFeatures(),
'currentUserId' => (int)($params['CURRENT_USER_ID'] ?? User::getId()),
]);
foreach (array_keys($groups) as $id)
{
if (!isset($additionalData[$id]))
{
continue;
}
$groups[$id]['ADDITIONAL_DATA'] = ($additionalData[$id] ?? []) ;
}
}
return $groups;
}