function UnregisterExpiredAgent($id = false) { global $DB; $handledMembers = array(); if ($id > 0) { $strAddWhere = 'AND M.ID = ' . intval($id); } else { $strAddWhere = ''; } $strSql = "\n\t\t\tSELECT M.ID\n\t\t\tFROM b_controller_member M\n\t\t\tINNER JOIN b_controller_group G ON M.CONTROLLER_GROUP_ID = G.ID\n\t\t\tWHERE\n\t\t\t\tG.TRIAL_PERIOD > 0\n\t\t\t\tAND TO_DAYS(now()) - TO_DAYS(M.IN_GROUP_FROM) >= G.TRIAL_PERIOD\n\t\t\t\tAND SITE_ACTIVE = 'Y'\n\t\t\t\tAND DISCONNECTED = 'N'\n\t\t\t\t" . $strAddWhere . "\n\t\t"; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, true); return true; } elseif (!isset($handledMembers[$ar["ID"]])) { $handledMembers[$ar["ID"]] = $ar["ID"]; CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => true)); } } $strSql = "\n\t\t\tSELECT M.ID\n\t\t\tFROM b_controller_member M\n\t\t\tWHERE\n\t\t\t\t(DATE_ACTIVE_FROM IS NULL OR DATE_ACTIVE_FROM <= " . $DB->CurrentTimeFunction() . ")\n\t\t\t\tAND (DATE_ACTIVE_TO IS NULL OR DATE_ACTIVE_TO >= " . $DB->CurrentTimeFunction() . ")\n\t\t\t\tAND ACTIVE = 'Y'\n\t\t\t\tAND SITE_ACTIVE <> 'Y'\n\t\t\t\tAND DISCONNECTED = 'N'\n\t\t\t\t" . $strAddWhere . "\n\t\t"; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, false); return true; } elseif (!isset($handledMembers[$ar["ID"]])) { $handledMembers[$ar["ID"]] = $ar["ID"]; CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => false)); } } $strSql = "\n\t\t\tSELECT M.ID\n\t\t\tFROM b_controller_member M\n\t\t\tWHERE\n\t\t\t\t(\n\t\t\t\t\tDATE_ACTIVE_FROM > " . $DB->CurrentTimeFunction() . "\n\t\t\t\t\tOR DATE_ACTIVE_TO < " . $DB->CurrentTimeFunction() . "\n\t\t\t\t\tOR ACTIVE = 'N'\n\t\t\t\t)\n\t\t\t\tAND SITE_ACTIVE = 'Y'\n\t\t\t\tAND DISCONNECTED = 'N'\n\t\t\t\t" . $strAddWhere . "\n\t\t"; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, true); return true; } elseif (!isset($handledMembers[$ar["ID"]])) { $handledMembers[$ar["ID"]] = $ar["ID"]; CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => true)); } } if ($id > 0) { return true; } return "CControllerMember::UnregisterExpiredAgent();"; }
function UnregisterExpiredAgent($id = false) { global $DB; if ($id > 0) { $strAddWhere = ' AND M.ID=' . IntVal($id); } else { $strAddWhere = ''; } $strSql = "SELECT M.ID " . "FROM b_controller_member M " . " INNER JOIN b_controller_group G ON M.CONTROLLER_GROUP_ID=G.ID " . "WHERE G.TRIAL_PERIOD>0 " . "\tAND TO_DAYS(now()) - TO_DAYS(M.IN_GROUP_FROM) >= G.TRIAL_PERIOD " . "\tAND SITE_ACTIVE = 'Y' " . $strAddWhere; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, true); return true; } else { CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => true)); } } $strSql = "SELECT M.ID " . "FROM b_controller_member M " . "WHERE (DATE_ACTIVE_FROM IS NULL OR DATE_ACTIVE_FROM <= " . $DB->CurrentTimeFunction() . ") " . "\tAND (DATE_ACTIVE_TO IS NULL OR DATE_ACTIVE_TO >= " . $DB->CurrentTimeFunction() . ") " . "\tAND ACTIVE = 'Y' " . "\tAND SITE_ACTIVE <> 'Y'" . $strAddWhere; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, false); return true; } else { CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => false)); } } $strSql = "SELECT M.ID " . "FROM b_controller_member M " . "WHERE (DATE_ACTIVE_FROM>" . $DB->CurrentTimeFunction() . " " . "\tOR DATE_ACTIVE_TO<" . $DB->CurrentTimeFunction() . " " . "\tOR ACTIVE = 'N') " . "\tAND SITE_ACTIVE = 'Y'" . $strAddWhere; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, true); } else { CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => true)); } } if ($id > 0) { return true; } return "CControllerMember::UnregisterExpiredAgent();"; }
public function Execute() { global $DB; if (!CModule::IncludeModule("controller")) { return CBPActivityExecutionStatus::Closed; } if (!CModule::IncludeModule("iblock")) { return CBPActivityExecutionStatus::Closed; } $rootActivity = $this->GetRootActivity(); $documentId = $rootActivity->GetDocumentId(); if ($documentId[0] !== 'iblock' || $documentId[1] !== 'CIBlockDocument' || $documentId[2] <= 0) { return CBPActivityExecutionStatus::Closed; } $arFilter = array("=ACTIVE" => "Y", "=DISCONNECTED" => "N"); if ($this->SitesFilterType == "groups") { if (is_array($this->SitesFilterGroups)) { $arFilter["=CONTROLLER_GROUP_ID"] = $this->SitesFilterGroups; } else { return CBPActivityExecutionStatus::Closed; } } elseif ($this->SitesFilterType == "sites") { if (intval($this->SitesFilterSitesGroup) > 0 && is_array($this->SitesFilterSites)) { $arFilter["=CONTROLLER_GROUP_ID"] = $this->SitesFilterSitesGroup; $arFilter["=ID"] = $this->SitesFilterSites; } else { return CBPActivityExecutionStatus::Closed; } } $rootActivity = $this->GetRootActivity(); $documentId = $rootActivity->GetDocumentId(); $export_file = $this->Export($documentId); if (strlen($export_file) <= 0) { return CBPActivityExecutionStatus::Closed; } $documentService = $this->workflow->GetService("DocumentService"); $document = $documentService->GetDocument($documentId); $arIBlock = CIBlock::GetArrayByID($document["IBLOCK_ID"]); $iblock_type = $arIBlock["IBLOCK_TYPE_ID"]; $query = ' if(version_compare(SM_VERSION, "11.0.10") < 0) { echo "Client main module version >= 11.0.10 is required."; return false; } $charset_to = ' . $this->PHP2PHP(LANG_CHARSET) . '; $export_file = CTempFile::GetDirectoryName()."import.tar.gz"; $iblock_type = ' . $this->PHP2PHP($iblock_type) . '; if(!CModule::IncludeModule("iblock")) { echo "Information block module not installed"; return false; } $iblock_id = CIBlockCMLImport::GetIBlockByXML_ID(' . $this->PHP2PHP($arIBlock['XML_ID']) . '); if(!$iblock_id) { $rsType = CIBlockType::GetByID($iblock_type); if(!$rsType->Fetch()) { echo "Information block type not found: $iblock_type"; return false; } } CheckDirPath($export_file); file_put_contents($export_file, base64_decode("' . base64_encode(file_get_contents($export_file)) . '")); if(!file_exists($export_file) || !is_file($export_file)) { echo "Can not create file: ".$export_file; return false; } $USER->Authorize(1); $USER->SetControllerAdmin(true); $res = ImportXMLFile($export_file, $iblock_type, false, "N", "N", true, false, true, true); if($res !== true) { echo $APPLICATION->ConvertCharset($res, LANG_CHARSET, $charset_to); return false; } return true; '; $rsMembers = CControllerMember::GetList(array("ID" => "ASC"), $arFilter); if ($this->SyncTime == "task") { while ($arMember = $rsMembers->Fetch()) { CControllerTask::Add(array("TASK_ID" => "REMOTE_COMMAND", "CONTROLLER_MEMBER_ID" => $arMember["ID"], "INIT_EXECUTE" => $query)); } } else { while ($arMember = $rsMembers->Fetch()) { CControllerMember::RunCommandWithLog($arMember["ID"], $query, array(), false, 'run_immediate'); } } return CBPActivityExecutionStatus::Closed; }
} } $runQueue = array(); $dbr_members = CControllerMember::GetList(array("ID" => "ASC"), $arFilter); while ($ar_member = $dbr_members->Fetch()) { $runQueue[$ar_member["ID"]] = $ar_member["NAME"]; $cnt++; if ($maxSafeCount !== false && $cnt > $maxSafeCount) { $runQueue = array(); break; } } $cnt_ok = 0; foreach ($runQueue as $memberId => $memberName) { if ($add_task == "Y") { if (CControllerTask::Add(array("TASK_ID" => "REMOTE_COMMAND", "CONTROLLER_MEMBER_ID" => $memberId, "INIT_EXECUTE" => $query))) { $cnt_ok++; } } else { echo BeginNote(); echo "<b><u>" . htmlspecialcharsEx($memberName) . ":</u></b><br>"; $result = CControllerMember::RunCommandWithLog($memberId, $query); if ($result === false) { $e = $APPLICATION->GetException(); echo "Error: " . $e->GetString(); } else { echo nl2br($result); } echo EndNote(); } }
function SiteUpdate($member_id) { CControllerTask::Add(array("TASK_ID" => "UPDATE", "CONTROLLER_MEMBER_ID" => $member_id)); }
$DB->Rollback(); $lAdmin->AddGroupError(GetMessage("CTRLR_TASK_ERR_DELETE"), $ID); } $DB->Commit(); break; case "repeat": if (!CControllerTask::Update($ID, array("STATUS" => "N", "DATE_EXECUTE" => false))) { if ($e = $APPLICATION->GetException()) { $lAdmin->AddGroupError(GetMessage("CTRLR_TASK_REP_DELETE") . " " . $ID . ": " . $e->GetString(), $ID); } } break; } } } $rsData = CControllerTask::GetList(array($by => $order), $arFilter); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("CTRLR_TASK_NAV"))); $arHeaders = array(); $arHeaders[] = array("id" => "CONTROLLER_MEMBER_NAME", "content" => GetMessage("CTRLR_TASK_FLT_CLIENT"), "default" => true, "sort" => "CONTROLLER_MEMBER_NAME"); $arHeaders[] = array("id" => "TASK_ID", "content" => GetMessage("CTRLR_TASK_COLUMN_TASK"), "default" => true, "sort" => "TASK_ID"); $arHeaders[] = array("id" => "STATUS", "content" => GetMessage("CTRLR_TASK_COLUMN_STATUS"), "default" => true, "sort" => "STATUS"); $arHeaders[] = array("id" => "DATE_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_EXEC"), "default" => true, "sort" => "DATE_EXECUTE"); $arHeaders[] = array("id" => "INIT_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_ARGS")); $arHeaders[] = array("id" => "RESULT_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_RESULT"), "default" => true); $arHeaders[] = array("id" => "CONTROLLER_MEMBER_URL", "content" => GetMessage("CTRLR_TASK_COLUMN_URL"), "sort" => "CONTROLLER_MEMBER_URL"); $arHeaders[] = array("id" => "TIMESTAMP_X", "content" => GetMessage("CTRLR_TASK_COLUMN_DATE_MOD"), "sort" => "timestamp_x"); $arHeaders[] = array("id" => "DATE_CREATE", "content" => GetMessage("CTRLR_TASK_COLUMN_DATE_CRE"), "default" => true, "sort" => "DATE_CREATE"); $arHeaders[] = array("id" => "ID", "content" => "ID", "default" => true, "sort" => "id"); $lAdmin->AddHeaders($arHeaders);
function ProcessAllTask() { global $DB, $APPLICATION; $uniq = $APPLICATION->GetServerUniqID(); $uniq = "X" . $uniq . "_controller_all_task"; if (!CControllerAgent::_Lock($uniq)) { return false; } $dbrTask = CControllerTask::GetList(array("ID" => "ASC"), array("=STATUS" => array('N', 'P'))); while ($arTask = $dbrTask->Fetch()) { CControllerTask::ProcessTask($arTask["ID"]); } CControllerAgent::_UnLock($uniq); return true; }
# 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;
$DB->Rollback(); $lAdmin->AddGroupError(GetMessage("CTRLR_TASK_ERR_DELETE"), $ID); } $DB->Commit(); break; case "repeat": if (!CControllerTask::Update($ID, array("STATUS" => "N", "DATE_EXECUTE" => false))) { if ($e = $APPLICATION->GetException()) { $lAdmin->AddGroupError(GetMessage("CTRLR_TASK_REP_DELETE") . " " . $ID . ": " . $e->GetString(), $ID); } } break; } } } $rsData = CControllerTask::GetList(array($by => $order), $arFilter, false, array("nPageSize" => CAdminResult::GetNavSize($sTableID))); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("CTRLR_TASK_NAV"))); $arHeaders = array(); $arHeaders[] = array("id" => "CONTROLLER_MEMBER_NAME", "content" => GetMessage("CTRLR_TASK_FLT_CLIENT"), "default" => true, "sort" => "CONTROLLER_MEMBER_NAME"); $arHeaders[] = array("id" => "TASK_ID", "content" => GetMessage("CTRLR_TASK_COLUMN_TASK"), "default" => true, "sort" => "TASK_ID"); $arHeaders[] = array("id" => "STATUS", "content" => GetMessage("CTRLR_TASK_COLUMN_STATUS"), "default" => true, "sort" => "STATUS"); $arHeaders[] = array("id" => "DATE_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_EXEC"), "default" => true, "sort" => "DATE_EXECUTE"); $arHeaders[] = array("id" => "INIT_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_ARGS")); $arHeaders[] = array("id" => "RESULT_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_RESULT"), "default" => true); $arHeaders[] = array("id" => "CONTROLLER_MEMBER_URL", "content" => GetMessage("CTRLR_TASK_COLUMN_URL"), "sort" => "CONTROLLER_MEMBER_URL"); $arHeaders[] = array("id" => "TIMESTAMP_X", "content" => GetMessage("CTRLR_TASK_COLUMN_DATE_MOD"), "sort" => "timestamp_x"); $arHeaders[] = array("id" => "DATE_CREATE", "content" => GetMessage("CTRLR_TASK_COLUMN_DATE_CRE"), "default" => true, "sort" => "DATE_CREATE"); $arHeaders[] = array("id" => "ID", "content" => "ID", "default" => true, "sort" => "id"); $lAdmin->AddHeaders($arHeaders);
<?php $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . "/../../../.."); // define("NO_KEEP_STATISTIC", true); // define("NOT_CHECK_PERMISSIONS",true); @set_time_limit(0); @ignore_user_abort(true); //// define("LANG","en"); // define("BX_CRONTAB", true); $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; if (CModule::IncludeModule("controller")) { CControllerTask::ProcessAllTask(); } //echo 'OK';
public static function ProcessAllTask() { $dbrTask = CControllerTask::GetList(array("ID" => "ASC"), array("=STATUS" => array('N', 'P'))); while ($arTask = $dbrTask->Fetch()) { CControllerTask::ProcessTask($arTask["ID"]); } return true; }