public static function CheckFields(&$arFields, $ID = false) { /** @global CMain $APPLICATION */ global $APPLICATION; $arMsg = array(); if ($ID > 0) { unset($arFields["ID"]); } global $DB; if (($ID === false || is_set($arFields, "TASK_ID")) && strlen($arFields["TASK_ID"]) <= 0) { $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_ID")); } elseif (is_set($arFields, "TASK_ID")) { $arTaskID = CControllerTask::GetTaskArray(); if (!isset($arTaskID[$arFields['TASK_ID']])) { $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_BAD_ID")); } } if (($ID === false || is_set($arFields, "CONTROLLER_MEMBER_ID")) && Intval($arFields["CONTROLLER_MEMBER_ID"]) <= 0) { $arMsg[] = array("id" => "CONTROLLER_MEMBER_ID", "text" => GetMessage("CTRLR_TASK_ERR_CLIENTID")); } if (isset($arFields["INIT_EXECUTE"])) { $arFields["INIT_CRC"] = crc32($arFields["INIT_EXECUTE"]); } if (count($arMsg) <= 0 && $ID === false) { $strSql = "\n\t\t\t\tSELECT INIT_EXECUTE\n\t\t\t\tFROM b_controller_task\n\t\t\t\tWHERE CONTROLLER_MEMBER_ID='" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "'\n\t\t\t\tAND TASK_ID='" . $DB->ForSQL($arFields["TASK_ID"], 255) . "'\n\t\t\t\tAND DATE_EXECUTE IS NULL\n\t\t\t"; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if (intval($ar["INIT_EXECUTE"]) == intval($arFields["INIT_EXECUTE"])) { $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_ALREADY") . " [" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "]."); break; } } } $APPLICATION->ResetException(); if ($ID === false) { foreach (GetModuleEvents("controller", "OnBeforeTaskAdd", true) as $arEvent) { $bEventRes = ExecuteModuleEventEx($arEvent, array($arFields)); if ($bEventRes === false) { if ($err = $APPLICATION->GetException()) { $arMsg[] = array("id" => "ID", "text" => $err->GetString() . " [" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "]."); } else { $arMsg[] = array("id" => "ID", "text" => "Unknown error." . " [" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "]."); } break; } } } if (count($arMsg) > 0) { $e = new CAdminException($arMsg); $APPLICATION->ThrowException($e); return false; } if ($ID === false && !is_set($arFields, "DATE_CREATE")) { $arFields["~DATE_CREATE"] = $DB->CurrentTimeFunction(); } return true; }
function CheckFields(&$arFields, $ID = false) { $arErrMsg = array(); if ($ID > 0) { unset($arFields["ID"]); } global $DB; if (($ID === false || is_set($arFields, "TASK_ID")) && strlen($arFields["TASK_ID"]) <= 0) { $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_ID")); } elseif (is_set($arFields, "TASK_ID")) { $arTaskID = CControllerTask::GetTaskArray(); if (!isset($arTaskID[$arFields['TASK_ID']])) { $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_BAD_ID")); } } if (($ID === false || is_set($arFields, "CONTROLLER_MEMBER_ID")) && Intval($arFields["CONTROLLER_MEMBER_ID"]) <= 0) { $arMsg[] = array("id" => "CONTROLLER_MEMBER_ID", "text" => GetMessage("CTRLR_TASK_ERR_CLIENTID")); } if (isset($arFields["INIT_EXECUTE"])) { $arFields["INIT_CRC"] = crc32($arFields["INIT_EXECUTE"]); } if (count($arMsg) <= 0 && $ID === false) { $strSql = "\n\t\t\t\tSELECT INIT_EXECUTE\n\t\t\t\tFROM b_controller_task\n\t\t\t\tWHERE CONTROLLER_MEMBER_ID='" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "'\n\t\t\t\tAND TASK_ID='" . $DB->ForSQL($arFields["TASK_ID"], 255) . "'\n\t\t\t\tAND DATE_EXECUTE IS NULL\n\t\t\t"; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if (intval($ar["INIT_EXECUTE"]) == intval($arFields["INIT_EXECUTE"])) { $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_ALREADY") . " [" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "]."); break; } } } if (count($arMsg) > 0) { $e = new CAdminException($arMsg); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } if ($ID === false && !is_set($arFields, "DATE_CREATE")) { $arFields["~DATE_CREATE"] = $DB->CurrentTimeFunction(); } return true; }
<?php require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; define("BX_STEP_SIZE", "1"); CModule::IncludeModule("controller"); require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/controller/prolog.php"; IncludeModuleLangFile(__FILE__); $MOD_RIGHT = $APPLICATION->GetGroupRight("controller"); if ($MOD_RIGHT < "V") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } $arTask = CControllerTask::GetTaskArray(); $arStatus = CControllerTask::GetStatusArray(); $dbrTaskN = CControllerTask::GetList(array(), array("=STATUS" => array('N', 'P')), true); $arTaskN = $dbrTaskN->Fetch(); $iTaskNCnt = IntVal($arTaskN['C']); if ($_SERVER["REQUEST_METHOD"] == "POST" && $_REQUEST['act'] == 'process' && check_bitrix_sessid()) { $strError = ""; $iStepSize = BX_STEP_SIZE; $iCntExecuted = intval($_REQUEST["executed"]); $iCntTotal = intval($_REQUEST["cnt"]); $tBeginTime = getmicrotime(); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_js.php"; if ($iTaskNCnt > 0) { $dbrTask = CControllerTask::GetList(array("ID" => "ASC"), array("=STATUS" => array('N', 'P'))); $tTasksTime = getmicrotime(); while ($arTask = $dbrTask->Fetch()) { $status = CControllerTask::ProcessTask($arTask["ID"]); if ($status === "0" && ($e = $APPLICATION->GetException())) { $strError = GetMessage("CTRLR_TASK_ERR_LOCK") . "<br>" . $e->GetString(); if (strpos($strError, "PLS-00201") !== false && strpos($strError, "'DBMS_LOCK'") !== false) {
# mailto:sources@bitrixsoft.com # ############################################## */ require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; CModule::IncludeModule("controller"); require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/controller/prolog.php"; IncludeModuleLangFile(__FILE__); $MOD_RIGHT = $APPLICATION->GetGroupRight("controller"); if ($MOD_RIGHT < "V") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } $sTableID = "t_controll_log"; $oSort = new CAdminSorting($sTableID, "id", "desc"); $lAdmin = new CAdminList($sTableID, $oSort); $arLogNames = CControllerLog::GetNameArray(); $arTaskNames = CControllerTask::GetTaskArray(); $arFilterRows = array(GetMessage("CTRL_LOG_ADMIN_FILTER_STATUS"), GetMessage("CTRL_LOG_ADMIN_FILTER_DESC"), "ID", GetMessage("CTRL_LOG_ADMIN_FILTER_CLIENT"), GetMessage("CTRL_LOG_ADMIN_FILTER_IDCLIENT"), GetMessage("CTRL_LOG_ADMIN_FILTER_TASK"), GetMessage("CTRL_LOG_ADMIN_FILTER_TASKID"), GetMessage("CTRL_LOG_ADMIN_FILTER_CREATED")); $filter = new CAdminFilter($sTableID . "_filter_id", $arFilterRows); $arFilterFields = array("find_name", "find_name2", "find_description", "find_id", "find_status", "find_task_id", "find_task_name", "find_controller_member_id", "find_controller_member_name", "find_timestamp_x_from", "find_timestamp_x_to"); $lAdmin->InitFilter($arFilterFields); $arFilter = array("ID" => $find_id, "CONTROLLER_MEMBER_ID" => $find_controller_member_id, "STATUS" => $find_status, "TASK_ID" => $find_task_id, "%NAME" => strlen($find_name2) > 0 ? $find_name2 : $find_name, "%DESCRIPTION" => $find_description, "%TASK_NAME" => $find_task_name, "%CONTROLLER_MEMBER_NAME" => $find_controller_member_name, ">=TIMESTAMP_X" => $find_timestamp_x_from, "<=TIMESTAMP_X" => $find_timestamp_x_to); if ($MOD_RIGHT >= "V" && ($arID = $lAdmin->GroupAction())) { if ($_REQUEST['action_target'] == 'selected') { $rsData = CControllerLog::GetList(array($by => $order), $arFilter); while ($arRes = $rsData->Fetch()) { $arID[] = $arRes['ID']; } } foreach ($arID as $ID) { if (strlen($ID) <= 0) { continue;