- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/iblocksocnetbizproc.php
- Класс: CIBlockDocumentWebdavSocnet
- Вызов: CIBlockDocumentWebdavSocnet::PublishDocument
static function PublishDocument($documentId)
{
global $DB;
$documentId = intval($documentId);
if ($documentId <= 0)
return;
$diskId = self::processGetDiskIdByDocId($documentId);
if($diskId !== null)
{
return self::proxyToDisk(__FUNCTION__, array($diskId));
}
$ID = intval($documentId);
$db_element = CIBlockElement::GetByID($ID);
$PARENT_ID = 0; $arParent = array();
if($arElement = $db_element->Fetch())
{
$PARENT_ID = intval($arElement["WF_PARENT_ELEMENT_ID"]);
if ($PARENT_ID > 0)
{
CBPDocument::MergeDocuments(
array("webdav", "CIBlockDocumentWebdavSocnet", $PARENT_ID),
array("webdav", "CIBlockDocumentWebdavSocnet", $documentId));
$db_res = CIBlockElement::GetList(
array(),
array("ID" => $PARENT_ID, "SHOW_NEW"=>"Y", "SHOW_HISTORY" => "Y"),
false,
false,
array("IBLOCK_ID", "ID", "NAME"));
$arParent = $db_res->Fetch();
}
}
parent::PublishDocument($documentId);
if ($PARENT_ID > 0)
{
CBPDocument::AddDocumentToHistory(
array("webdav", "CIBlockDocumentWebdavSocnet", $PARENT_ID),
str_replace(
array("#PARENT_ID#", "#PARENT_NAME#", "#ID#", "#NAME#"),
array($PARENT_ID, $arParent["NAME"], $documentId, $arElement["NAME"]),
GetMessage("IBD_TEXT_001")),
$GLOBALS["USER"]->GetID());
}
$arElement["ID"] = ($PARENT_ID > 0 ? $PARENT_ID : $arElement["ID"]);
// socnet
$arConstructor = array(
"FILES_PROPERTY_CODE" => "FILE");
$dbSectionsChain = CIBlockSection::GetNavChain($arElement["IBLOCK_ID"], $arElement["IBLOCK_SECTION_ID"]);
$user_id = $group_id = false;
if ($arSection = $dbSectionsChain->Fetch())
{
if (intval($arSection["SOCNET_GROUP_ID"]) > 0)
{
$arConstructor["FILES_GROUP_IBLOCK_ID"] = $arElement["IBLOCK_ID"];
$arConstructor["PATH_TO_GROUP_FILES_ELEMENT"] = CIBlockDocumentWebdavSocnet::GetDocumentAdminPage($documentId);
$group_id = $arSection["SOCNET_GROUP_ID"];
}
else
{
$arConstructor["FILES_USER_IBLOCK_ID"] = $arElement["IBLOCK_ID"];
$arConstructor["PATH_TO_USER_FILES_ELEMENT"] = CIBlockDocumentWebdavSocnet::GetDocumentAdminPage($documentId);
$user_id = $arSection["CREATED_BY"];
}
}
$bxSocNetSearch = new CSocNetSearch($user_id, $group_id, $arConstructor);
$bxSocNetSearch->IBlockElementUpdate($arElement);
if ($arElement)
{
$rsEvents = GetModuleEvents("webdav", "OnBizprocPublishDocument");
while ($arEvent = $rsEvents->Fetch())
{
ExecuteModuleEventEx($arEvent, array($arElement['ID']));
}
}
return $PARENT_ID > 0 ? $PARENT_ID : $documentId;
}