- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblockdocument.php
- Класс: CIBlockDocument
- Вызов: CIBlockDocument::LockDocument
static function LockDocument($documentId, $workflowId)
{
global $DB;
$strSql = "
SELECT * FROM b_iblock_element_lock
WHERE IBLOCK_ELEMENT_ID = ".intval($documentId)."
AND LOCKED_BY = '".$DB->ForSQL($workflowId, 32)."'
";
$z = $DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__);
if($z->Fetch())
{
//Success lock because documentId already locked by workflowId
return true;
}
else
{
$strSql = "
INSERT INTO b_iblock_element_lock (IBLOCK_ELEMENT_ID, DATE_LOCK, LOCKED_BY)
SELECT E.ID, ".$DB->GetNowFunction().", '".$DB->ForSQL($workflowId, 32)."'
FROM b_iblock_element E
LEFT JOIN b_iblock_element_lock EL on EL.IBLOCK_ELEMENT_ID = E.ID
WHERE ID = ".intval($documentId)."
AND EL.IBLOCK_ELEMENT_ID IS NULL
";
$z = $DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__);
return $z->AffectedRowsCount() > 0;
}
}