• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/mysql/iblockelement.php
  • Класс: CIBlockElement
  • Вызов: CIBlockElement::WF_GetHistoryList
static function WF_GetHistoryList($ELEMENT_ID, $by = 's_id', $order = 'desc', $arFilter = [])
{
	$err_mess = "FILE: ".__FILE__."
LINE: "; global $DB; $ELEMENT_ID = intval($ELEMENT_ID); $strSqlSearch = ""; if(is_array($arFilter)) { foreach ($arFilter as $key => $val) { if ((string)$val == '' || $val == "NOT_REF") continue; $val = $DB->ForSql($val); $key = strtoupper($key); switch($key) { case "ID": $arr = explode(",", $val); if (!empty($arr)) { $arr = array_map("intval", $arr); $str = implode(", ", $arr); $strSqlSearch .= " and E.ID in (".$str.")"; } break; case "TIMESTAMP_FROM": $strSqlSearch .= " and E.TIMESTAMP_X>=FROM_UNIXTIME('".MkDateTime(FmtDate($val,"D.M.Y"),"d.m.Y")."')"; break; case "TIMESTAMP_TO": $strSqlSearch .= " and E.TIMESTAMP_X<=FROM_UNIXTIME('".MkDateTime(FmtDate($val,"D.M.Y")." 23:59:59","d.m.Y H:i:s")."')"; break; case "MODIFIED_BY": case "MODIFIED_USER_ID": $strSqlSearch .= " and E.MODIFIED_BY='".intval($val)."'"; break; case "IBLOCK_ID": $strSqlSearch .= " and E.IBLOCK_ID='".intval($val)."'"; break; case "NAME": if($val!="%%") $strSqlSearch .= " and upper(E.NAME) like upper('".$DB->ForSQL($val,255)."')"; break; case "STATUS": case "STATUS_ID": $strSqlSearch .= " and E.WF_STATUS_ID='".intval($val)."'"; break; } } } if($by == "s_id") $strSqlOrder = "ORDER BY E.ID"; elseif($by == "s_timestamp") $strSqlOrder = "ORDER BY E.TIMESTAMP_X"; elseif($by == "s_modified_by") $strSqlOrder = "ORDER BY E.MODIFIED_BY"; elseif($by == "s_name") $strSqlOrder = "ORDER BY E.NAME"; elseif($by == "s_status") $strSqlOrder = "ORDER BY E.WF_STATUS_ID"; else { $strSqlOrder = "ORDER BY E.ID"; } if($order != "asc") { $strSqlOrder .= " desc "; } $strSql = " SELECT E.*, ".$DB->DateToCharFunction("E.TIMESTAMP_X")." TIMESTAMP_X, concat('(', U.LOGIN, ') ', coalesce(U.NAME,''), ' ', coalesce(U.LAST_NAME,'')) USER_NAME, S.TITLE STATUS_TITLE FROM b_iblock_element E INNER JOIN b_workflow_status S on S.ID = E.WF_STATUS_ID LEFT JOIN b_user U ON U.ID = E.MODIFIED_BY WHERE E.WF_PARENT_ELEMENT_ID = ".$ELEMENT_ID." ".$strSqlSearch." ".$strSqlOrder." "; $res = $DB->Query($strSql, false, $err_mess.__LINE__); return $res; }