• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/componenthelper.php
  • Класс: BitrixSocialnetworkComponentHelper
  • Вызов: ComponentHelper::getExtranetSonetGroupIdList
static function getExtranetSonetGroupIdList()
{
	$result = array();

	$ttl = (defined("BX_COMP_MANAGED_CACHE") ? 2592000 : 600);
	$cacheId = 'sonet_ex_groupid';
	$cache = new CPHPCache;
	$cacheDir = '/bitrix/sonet/group_ex';

	if($cache->initCache($ttl, $cacheId, $cacheDir))
	{
		$tmpVal = $cache->getVars();
		$result = $tmpVal['EX_GROUP_ID'];
		unset($tmpVal);
	}
	elseif (Loader::includeModule('extranet'))
	{
		global $CACHE_MANAGER;
		if (defined("BX_COMP_MANAGED_CACHE"))
		{
			$CACHE_MANAGER->startTagCache($cacheDir);
		}

		$res = WorkgroupTable::getList(array(
			'order' => array(),
			'filter' => array(
				"=WorkgroupSite:GROUP.SITE_ID" => CExtranet::getExtranetSiteID()
			),
			'select' => array('ID')
		));

		while($sonetGroup = $res->fetch())
		{
			$result[] = $sonetGroup["ID"];
			if (defined("BX_COMP_MANAGED_CACHE"))
			{
				$CACHE_MANAGER->registerTag('sonet_group_'.$sonetGroup["ID"]);
			}
		}

		if (defined("BX_COMP_MANAGED_CACHE"))
		{
			$CACHE_MANAGER->registerTag('sonet_group');
			$CACHE_MANAGER->endTagCache();
		}

		if($cache->startDataCache())
		{
			$cache->endDataCache(array(
				'EX_GROUP_ID' => $result
			));
		}
	}

	return $result;
}