- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/iblockbizproc.php
- Класс: CIBlockDocumentWebdav
- Вызов: CIBlockDocumentWebdav::PublishDocument
static function PublishDocument($documentId)
{
$documentId = intval($documentId);
if ($documentId <= 0)
throw new CBPArgumentNullException("documentId");
$diskId = self::processGetDiskIdByDocId($documentId);
if($diskId !== null)
{
return self::proxyToDisk(__FUNCTION__, array($diskId));
}
global $DB;
$ID = intval($documentId);
$db_element = CIBlockElement::GetList(array(), array("ID"=>$ID, "SHOW_HISTORY"=>"Y"), false, false,
array(
"ID",
"NAME",
"WF_PARENT_ELEMENT_ID",
)
);
$PARENT_ID = 0; $arParent = array();
if($ar_element = $db_element->Fetch())
{
$PARENT_ID = intval($ar_element["WF_PARENT_ELEMENT_ID"]);
if ($PARENT_ID > 0)
{
CBPDocument::MergeDocuments(
array("webdav", "CIBlockDocumentWebdav", $PARENT_ID),
array("webdav", "CIBlockDocumentWebdav", $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", "CIBlockDocumentWebdav", $PARENT_ID),
str_replace(
array("#PARENT_ID#", "#PARENT_NAME#", "#ID#", "#NAME#"),
array($PARENT_ID, $arParent["NAME"], $documentId, $ar_element["NAME"]),
GetMessage("IBD_TEXT_001")),
$GLOBALS["USER"]->GetID());
}
if ($ar_element)
{
$rsEvents = GetModuleEvents("webdav", "OnBizprocPublishDocument");
while ($arEvent = $rsEvents->Fetch())
{
ExecuteModuleEventEx($arEvent, array($ar_element['ID']));
}
}
return $PARENT_ID > 0 ? $PARENT_ID : $documentId;
}