• Модуль: workflow
  • Путь к файлу: ~/bitrix/modules/workflow/classes/mysql/workflow.php
  • Класс: CWorkflow
  • Вызов: CWorkflow::GetList
static function GetList($by = 's_date_modify', $order = 'desc', $arFilter = [])
{
	$err_mess = (CWorkflow::err_mess())."
Function: GetList
Line: "; global $DB, $USER; $arSqlSearch = Array(); $MAX_LOCK = intval(COption::GetOptionString("workflow","MAX_LOCK_TIME","60")); $arGroups = $USER->GetUserGroupArray(); if (!is_array($arGroups)) $arGroups[] = 2; $groups = implode(",",$arGroups); $uid = intval($USER->GetID()); if (is_array($arFilter)) { foreach ($arFilter as $key => $val) { if ((string)$val == '' || "$val"=="NOT_REF") continue; if (is_array($val) && count($val)<=0) continue; $match_value_set = (array_key_exists($key."_EXACT_MATCH", $arFilter) ? true : false); $key = strtoupper($key); switch($key) { case "ID": $match = ($match_value_set && $arFilter[$key."_EXACT_MATCH"]=="N") ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("D.ID",$val,$match); break; case "DATE_MODIFY_1": if (CheckDateTime($val)) $arSqlSearch[] = "D.DATE_MODIFY >= ".$DB->CharToDateFunction($val, "SHORT"); break; case "DATE_MODIFY_2": if (CheckDateTime($val)) $arSqlSearch[] = "D.DATE_MODIFY < ".$DB->CharToDateFunction($val, "SHORT")." + INTERVAL 1 DAY"; break; case "MODIFIED_BY": $match = ($match_value_set && $arFilter[$key."_EXACT_MATCH"]=="Y") ? "N" : "Y"; $arSqlSearch[] = GetFilterQuery("D.MODIFIED_BY, UM.LOGIN, UM.NAME, UM.LAST_NAME", $val, $match); break; case "MODIFIED_USER_ID": $match = ($match_value_set && $arFilter[$key."_EXACT_MATCH"]=="N") ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("D.MODIFIED_BY",$val,$match); break; case "LOCK_STATUS": $arSqlSearch[] = " if (D.DATE_LOCK is null, 'green', if(DATE_ADD(D.DATE_LOCK, interval $MAX_LOCK MINUTE)DateToCharFunction("D.DATE_ENTER")." DATE_ENTER, ".$DB->DateToCharFunction("D.DATE_MODIFY")." DATE_MODIFY, ".$DB->DateToCharFunction("D.DATE_LOCK")." DATE_LOCK, concat('(',UM.LOGIN,') ',ifnull(UM.NAME,''),' ',ifnull(UM.LAST_NAME,'')) MUSER_NAME, concat('(',UE.LOGIN,') ',ifnull(UE.NAME,''),' ',ifnull(UE.LAST_NAME,'')) EUSER_NAME, S.TITLE STATUS_TITLE, if (D.DATE_LOCK is null, 'green', if(DATE_ADD(D.DATE_LOCK, interval $MAX_LOCK MINUTE)DateToCharFunction("D.DATE_ENTER")." DATE_ENTER, ".$DB->DateToCharFunction("D.DATE_MODIFY")." DATE_MODIFY, ".$DB->DateToCharFunction("D.DATE_LOCK")." DATE_LOCK, concat('(',UM.LOGIN,') ',ifnull(UM.NAME,''),' ',ifnull(UM.LAST_NAME,'')) MUSER_NAME, concat('(',UE.LOGIN,') ',ifnull(UE.NAME,''),' ',ifnull(UE.LAST_NAME,'')) EUSER_NAME, S.TITLE STATUS_TITLE, if (D.DATE_LOCK is null, 'green', if(DATE_ADD(D.DATE_LOCK, interval $MAX_LOCK MINUTE)= '2' $strSqlOrder "; } $rs = $DB->Query($strSql, false, $err_mess.__LINE__); $arr = array(); while($ar=$rs->Fetch()) { if($USER->CanDoFileOperation('fm_edit_in_workflow', Array($ar["SITE_ID"], $ar["FILENAME"]))) $arr[] = $ar; } $rs = new CDBResult; $rs->InitFromArray($arr); return $rs; }