• Модуль: wiki
  • Путь к файлу: ~/bitrix/modules/wiki/classes/general/wiki_socnet.php
  • Класс: CWikiSocnet
  • Вызов: CWikiSocnet::Init
static function Init($SOCNET_GROUP_ID, $IBLOCK_ID)
{
	if (self::$bInit)
		return self::$bInit;

	if (!self::IsEnabledSocnet())
		return false;

	self::$iSocNetId = intval($SOCNET_GROUP_ID);

	// detect work group
	$arFilter = Array();
	$arFilter['IBLOCK_ID'] = $IBLOCK_ID;
	$arFilter['SOCNET_GROUP_ID'] = self::$iSocNetId;
	$arFilter['CHECK_PERMISSIONS'] = 'N';
	$rsSection = CIBlockSection::GetList(Array($by=>$order), $arFilter, true);
	$obSection = $rsSection->GetNextElement();

	if ($obSection !== false)
	{
		$arResult = $obSection->GetFields();
		self::$iCatId = $arResult['ID'];
		self::$iCatLeftBorder = $arResult['LEFT_MARGIN'];
		self::$iCatRightBorder = $arResult['RIGHT_MARGIN'];
	}
	else
	{
		$arWorkGroup = CSocNetGroup::GetById(self::$iSocNetId);

		$arFields = Array(
			'ACTIVE' => 'Y',
			'IBLOCK_ID' => $IBLOCK_ID,
			'SOCNET_GROUP_ID' => self::$iSocNetId,
			'CHECK_PERMISSIONS' => 'N',
			'NAME' => $arWorkGroup['NAME']
		);
		$CIB_S = new CIBlockSection();
		self::$iCatId = $CIB_S->Add($arFields);
		if (self::$iCatId == false)
		{
			self::$bInit = false;
			return false;
		}
		$rsSection = CIBlockSection::GetList(Array($by=>$order), $arFilter, true);
		$obSection = $rsSection->GetNextElement();
		if ($obSection == false)
		{
			self::$bInit = false;
			return false;
		}
		$arResult = $obSection->GetFields();
		self::$iCatLeftBorder = $arResult['LEFT_MARGIN'];
		self::$iCatRightBorder = $arResult['RIGHT_MARGIN'];
	}

	self::$bInit = CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, self::$iSocNetId, 'wiki');
	return self::$bInit;
}