- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_webdav_helper.php
- Класс: CVoxImplantWebDavHelper
- Вызов: CVoxImplantWebDavHelper::EnsureSharedFileSectionCreated
static function EnsureSharedFileSectionCreated($blockID, $siteID = SITE_ID)
{
$siteID = strval($siteID);
$blockID = intval($blockID);
if($blockID <= 0 || $siteID === '')
{
return 0;
}
$blockSection = new CIBlockSection();
$dbSections = $blockSection->GetList(array(), array('XML_ID' => 'VI_CALLS', 'IBLOCK_ID'=> $blockID, 'CHECK_PERMISSIONS' => 'N'), false, array('ID'));
$arSection = $dbSections->Fetch();
if(is_array($arSection))
{
$blockSectionID = intval($arSection['ID']);
}
if($blockSectionID <= 0)
{
$dbSite = CSite::GetByID($siteID);
$arSite = $dbSite->Fetch();
IncludeModuleLangFile(__FILE__, $arSite && isset($arSite['LANGUAGE_ID']) ? $arSite['LANGUAGE_ID'] : false);
$blockSectionID = $blockSection->Add(
array(
'IBLOCK_ID' => $blockID,
'ACTIVE' => 'Y',
'NAME' => GetMessage('VI_DISK_CALL_RECORD_SECTION'),
'IBLOCK_SECTION_ID' => 0,
'CHECK_PERMISSIONS' => 'N',
'XML_ID' => 'VI_CALLS'
)
);
if (CIBlock::GetArrayByID($blockID, "RIGHTS_MODE") === "E")
{
$rightObject = CWebDavIblock::_get_ib_rights_object('IBLOCK', 0, $blockID);
$existsRights = $rightObject->GetRights();
$rs = CTask::GetList(
array("LETTER"=>"asc"),
array(
"MODULE_ID" => "iblock",
"BINDING" => "iblock",
"SYS" => "Y",
)
);
$arTasks = array();
while($ar = $rs->Fetch())
$arTasks[$ar["NAME"]] = $ar["ID"];
$newRights = array();
$i = 0;
foreach ($existsRights as $existsRight)
{
$newRights['n'.$i] = array(
'GROUP_CODE' => $existsRight['GROUP_CODE'],
'TASK_ID' => $arTasks['iblock_deny'],
);
$i++;
}
$rightObject = CWebDavIblock::_get_ib_rights_object('SECTION', $blockSectionID, $blockID);
$rightObject->SetRights($newRights);
$rights['n'.$i] = array(
'GROUP_CODE' => '',
'TASK_ID' => $arTasks['iblock_deny'],
);
CWebDavIblock::appendRightsOnSections(Array(Array(
'ID' => $blockSectionID,
'IBLOCK_ID' => $blockID,
)), Array(
'W' => Array('G1'),
));
}
}
return $blockSectionID;
}