• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/iblocksocnet.php
  • Класс: CIBlockWebdavSocnet
  • Вызов: CIBlockWebdavSocnet::groupSectionCreate
static function groupSectionCreate($groupId)
{
	$groupLib = CWebDavIblock::LibOptions('group_files', false, SITE_ID);
	if(!$groupLib || !isset($groupLib['id']) || !($iblockId = intval($groupLib['id'])))
	{
		return false;
	}

	$result = CIBlockWebdavSocnet::GetSectionID($iblockId, 'group', $groupId);
	if (intval($result) > 0)
	{
		return $result;
	}

	$dbRes = CUserTypeEntity::GetList(array($by=>$order), array("ENTITY_ID" => "IBLOCK_".$iblockId."_SECTION", "FIELD_NAME" => "UF_USE_BP"));
	if (!$dbRes || !($res = $dbRes->GetNext()))
	{
		$arFields = array(
			"ENTITY_ID" => "IBLOCK_".$iblockId."_SECTION",
			"FIELD_NAME" => "UF_USE_BP",
			"USER_TYPE_ID" => "string",
			"MULTIPLE" => "N",
			"MANDATORY" => "N",
			"SETTINGS" => array("DEFAULT_VALUE" => "Y"));
		$arFieldName = array();
		$rsLanguage = CLanguage::GetList();
		while($arLanguage = $rsLanguage->Fetch())
		{
			$dir = str_replace(array("\", "//"), "/", __DIR__);
			$dirs = explode("/", $dir);
			array_pop($dirs);
			$file = trim(implode("/", $dirs)."/lang/".$arLanguage["LID"]."/include/webdav_settings.php");
			$tmp_mess = __IncludeLang($file, true);
			$arFieldName[$arLanguage["LID"]] = (empty($tmp_mess["SONET_UF_USE_BP"]) ? "Use Business Process" : $tmp_mess["SONET_UF_USE_BP"]);
		}
		$arFields["EDIT_FORM_LABEL"] = $arFieldName;
		$obUserField  = new CUserTypeEntity;
		$obUserField->Add($arFields);
		$GLOBALS["USER_FIELD_MANAGER"]->arFieldsCache = array();
	}

	$arFields = array(
		"IBLOCK_ID" => $iblockId,
		"ACTIVE" => "Y",
		"SOCNET_GROUP_ID" => false,
		"IBLOCK_SECTION_ID" => 0,
		"UF_USE_BP" => "N"
	);

	$arFields["SOCNET_GROUP_ID"] = $groupId;

	$arFields["NAME"] = GetMessage("SONET_GROUP_PREFIX").$groupId;

	$dbGroup = CSocNetGroup::GetList(
		array(),
		array("ID" => (int) $groupId),
		false,
		false,
		array("ID", "SITE_ID", "NAME")
	);

	if ($arGroup = $dbGroup->Fetch())
	{
		$arFields["NAME"] = GetMessage("SONET_GROUP_PREFIX") . BitrixMainTextEmoji::decode($arGroup["NAME"]);
	}

	if (CIBlock::GetarrayByID($iblockId, "RIGHTS_MODE") === "E")
	{
		$arTasks = CWebDavIblock::GetTasks();
		$arFields['RIGHTS'] = array(
			'n0' => array('GROUP_CODE' => 'SG'.$arFields["SOCNET_GROUP_ID"].'_A', 'TASK_ID' => $arTasks['X']),
			'n1' => array('GROUP_CODE' => 'SG'.$arFields["SOCNET_GROUP_ID"].'_E', 'TASK_ID' => $arTasks['W']),
			'n2' => array('GROUP_CODE' => 'SG'.$arFields["SOCNET_GROUP_ID"].'_K', 'TASK_ID' => $arTasks['W'])
		);
	}

	$GLOBALS["UF_USE_BP"] = $arFields["UF_USE_BP"];
	$GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_".$iblockId."_SECTION", $arFields);
	$bs = new CIBlockSection;
	$sectionId = $bs->Add($arFields);
	if (!$sectionId)
	{
		return false;
	}

	return $sectionId;
}