- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/ui/entityselector/projecttagprovider.php
- Класс: BitrixSocialNetworkIntegrationUIEntitySelectorProjectTagProvider
- Вызов: ProjectTagProvider::getTags
static function getTags(array $options = []): EO_WorkgroupTag_Collection
{
$query = WorkgroupTagTable::query();
$query->setSelect(['NAME', 'GROUP_ID']);
if (($options['selected'] ?? null) && $options['groupId'])
{
$query->where('GROUP_ID', $options['groupId']);
}
if (!empty($options['searchQuery'] ?? null) && is_string($options['searchQuery']))
{
$query
->setDistinct(true)
->registerRuntimeField(
'G',
new ReferenceField(
'G',
WorkgroupTable::getEntity(),
Join::on('this.GROUP_ID', 'ref.ID'),
['join_type' => 'left']
)
)
->registerRuntimeField(
'UG',
new ReferenceField(
'UG',
UserToGroupTable::getEntity(),
Join::on('this.GROUP_ID', 'ref.GROUP_ID'),
['join_type' => 'left']
)
)
->where(
Query::filter()
->logic('or')
->where('G.VISIBLE', 'Y')
->where(
Query::filter()
->whereNotNull('UG.ID')
->whereIn('UG.ROLE', UserToGroupTable::getRolesMember())
)
)
->whereLike('NAME', "{$options['searchQuery']}%")
;
}
return $query->exec()->fetchCollection();
}