• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/group_features.php
  • Класс: CAllSocNetFeatures
  • Вызов: CAllSocNetFeatures::getActiveFeaturesList
static function getActiveFeaturesList($type, $id)
{
	global $CACHE_MANAGER;

	$arFeatures = array();

	$cache = new CPHPCache;
	$cache_time = 31536000;
	$cache_id = $type."_".$id;
	$cache_path = "/sonet/features/".$type."/".intval($id / 1000)."/".$id."/";

	if ($cache->InitCache($cache_time, $cache_id, $cache_path))
	{
		$arCacheVars = $cache->GetVars();
		$arFeatures = $arCacheVars["FEATURES"];
	}
	else
	{
		$cache->StartDataCache($cache_time, $cache_id, $cache_path);
		if (defined("BX_COMP_MANAGED_CACHE"))
		{
			$CACHE_MANAGER->StartTagCache($cache_path);
			$CACHE_MANAGER->RegisterTag("sonet_features_".$type."_".$id);
		}

		$dbResult = CSocNetFeatures::GetList(Array(), Array("ENTITY_ID" => $id, "ENTITY_TYPE" => $type));
		while ($arResult = $dbResult->GetNext())
		{
			$arFeatures[$arResult["FEATURE"]] = array("ACTIVE" => $arResult["ACTIVE"], "FEATURE_NAME" => $arResult["FEATURE_NAME"]);
			if (defined("BX_COMP_MANAGED_CACHE"))
			{
				$CACHE_MANAGER->RegisterTag("sonet_feature_".$arResult["ID"]);
			}
		}

		$arCacheData = Array(
			"FEATURES" => $arFeatures
		);
		if(defined("BX_COMP_MANAGED_CACHE"))
		{
			$CACHE_MANAGER->EndTagCache();
		}
		$cache->EndDataCache($arCacheData);
	}

	return $arFeatures;
}