- Модуль: 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;
}