- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/mysql/iblockelement.php
- Класс: CIBlockElement
- Вызов: CIBlockElement::WF_GetLockStatus
static function WF_GetLockStatus($ID, &$locked_by, &$date_lock)
{
global $DB, $USER;
$connection = BitrixMainApplication::getConnection();
$helper = $connection->getSqlHelper();
$err_mess = "FILE: ".__FILE__."
LINE:";
$ID = (int)$ID;
$MAX_LOCK = (int)COption::GetOptionString("workflow","MAX_LOCK_TIME","60");
$uid = is_object($USER)? (int)$USER->GetID(): 0;
$strSql = "
SELECT WF_LOCKED_BY,
".$DB->DateToCharFunction("WF_DATE_LOCK")." WF_DATE_LOCK,
case
when WF_DATE_LOCK is null then 'green'
when " . $helper->addSecondsToDateTime($MAX_LOCK * 60, 'WF_DATE_LOCK') . " < " . $helper->getCurrentDateTimeFunction() . " then 'green'
when WF_LOCKED_BY = " . $uid . " then 'yellow'
else 'red'
end LOCK_STATUS
FROM b_iblock_element
WHERE ID = ".$ID."
";
$z = $DB->Query($strSql, false, $err_mess.__LINE__);
$zr = $z->Fetch();
$locked_by = $zr["WF_LOCKED_BY"];
$date_lock = $zr["WF_DATE_LOCK"];
return $zr["LOCK_STATUS"];
}