• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/iblockbizproc.php
  • Класс: CIBlockDocumentWebdav
  • Вызов: CIBlockDocumentWebdav::UnlockDocument
static function UnlockDocument($documentId, $workflowId)
{
	$documentId = intval($documentId);
	if ($documentId <= 0)
		throw new CBPArgumentNullException("documentId");

	$diskId = self::processGetDiskIdByDocId($documentId);
	if($diskId !== null)
	{
		return self::proxyToDisk(__FUNCTION__, array($diskId, $workflowId));
	}

	global $DB;
	$strSql = "
		SELECT * FROM b_iblock_element_lock
		WHERE IBLOCK_ELEMENT_ID = ".intval($documentId)."
	";
	$z = $DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__); if($z->Fetch()) { $strSql = " DELETE FROM b_iblock_element_lock WHERE IBLOCK_ELEMENT_ID = ".intval($documentId)." AND (LOCKED_BY = '".$DB->ForSQL($workflowId, 32)."' OR '".$DB->ForSQL($workflowId, 32)."' = '') "; $z = $DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__); $result = $z->AffectedRowsCount(); } else {//Success unlock when there is no locks at all $result = 1; } if ($result > 0) { $db_events = GetModuleEvents("webdav", "CIBlockDocumentWebdav_OnUnlockDocument"); while ($arEvent = $db_events->Fetch()) ExecuteModuleEventEx($arEvent, array("webdav", "CIBlockDocumentWebdav", $documentId)); } return $result > 0; }