- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/componenthelper.php
- Класс: BitrixSocialnetworkComponentHelper
- Вызов: ComponentHelper::getUserSonetGroupIdList
static function getUserSonetGroupIdList($userId = false, $siteId = false)
{
$result = array();
if ((int)$userId <= 0)
{
global $USER;
$userId = (int)$USER->getId();
}
if (!$siteId)
{
$siteId = SITE_ID;
}
$currentCache = BitrixMainDataCache::createInstance();
$cacheTtl = defined("BX_COMP_MANAGED_CACHE") ? 3153600 : 3600*4;
$cacheId = 'user_group_member'.$siteId.'_'.$userId;
$cacheDir = '/sonet/user_group_member/'.$siteId.'/'.$userId;
if($currentCache->startDataCache($cacheTtl, $cacheId, $cacheDir))
{
global $CACHE_MANAGER;
$res = UserToGroupTable::getList(array(
'filter' => array(
'<=ROLE' => UserToGroupTable::ROLE_USER,
'=USER_ID' => $userId,
'=GROUP.ACTIVE' => 'Y',
'=GROUP.WorkgroupSite:GROUP.SITE_ID' => $siteId
),
'select' => array('GROUP_ID')
));
while ($record = $res->fetch())
{
$result[] = $record["GROUP_ID"];
}
if(defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->startTagCache($cacheDir);
$CACHE_MANAGER->registerTag("sonet_user2group_U".$userId);
$CACHE_MANAGER->endTagCache();
}
$currentCache->endDataCache($result);
}
else
{
$result = $currentCache->getVars();
}
return $result;
}