3declare(strict_types=1);
5namespace Bitrix\Socialnetwork\Provider;
7use Bitrix\Main\ArgumentException;
8use Bitrix\Main\ObjectPropertyException;
9use Bitrix\Main\SystemException;
10use Bitrix\Socialnetwork\Internals\Registry\Event\GroupLoadedEvent;
11use Bitrix\Socialnetwork\Item\Workgroup\Type;
12use Bitrix\Socialnetwork\WorkgroupTable;
13use Bitrix\Socialnetwork\Helper\InstanceTrait;
31 if (isset(static::$checkedGroups[
$name]))
33 return static::$checkedGroups[
$name];
36 $query = WorkgroupTable::query()
38 ->where(
'NAME',
$name);
42 $query->whereNot(
'ID', $groupId);
49 return static::$checkedGroups[
$name];
59 if (isset(static::$groupTypes[$groupId]))
61 return static::$groupTypes[$groupId];
66 return static::$groupTypes[$groupId] ??
null;
77 foreach ($groupIds as $groupId)
79 if (!isset(static::$groupTypes[$groupId]))
81 $uncachedGroups[] = $groupId;
85 if (empty($uncachedGroups))
90 $groups = WorkgroupTable::query()
91 ->setSelect([
'ID',
'TYPE',
'SCRUM_MASTER_ID',
'PROJECT'])
92 ->setFilter([
'ID' => $uncachedGroups])
98 static::$groupTypes[$group[
'ID']] = $this->getTypeByFields($group);
104 $group =
$event->getGroup();
105 $type = $group->getType();
109 static::$groupTypes[$group->getId()] =
$type;
117 return Type::tryFrom(
$fields[
'TYPE']);
120 if (isset(
$fields[
'SCRUM_MASTER_ID']))
125 if ((
$fields[
'PROJECT'] ??
'N') ===
'Y')
127 return Type::Project;
130 return Type::getDefault();
static array $checkedGroups
isExistingGroup(string $inputName, int $groupId=0)
onObjectLoaded(GroupLoadedEvent $event)
getGroupType(int $groupId)
loadGroupTypes(int ... $groupIds)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)