%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/bizproc.workflow.setconstants/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/bizproc.workflow.setconstants/component.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); if (!CModule::IncludeModule("bizproc")) return false; if (!$GLOBALS["USER"]->IsAuthorized()) { $GLOBALS["APPLICATION"]->AuthForm(GetMessage("ACCESS_DENIED")); die(); } $arParams["ID"] = intval($arParams["ID"]); $arParams['POPUP'] = isset($arParams["POPUP"]) && $arParams["POPUP"] == 'Y'; $arParams['AJAX_RESPONSE'] = isset($arParams["AJAX_RESPONSE"]) && $arParams["AJAX_RESPONSE"] == 'Y'; if (!empty($_SERVER['HTTP_BX_AJAX']) && SITE_CHARSET != "utf-8") { CUtil::decodeURIComponent($_REQUEST); CUtil::decodeURIComponent($_FILES); } if ($arParams['POPUP']) { $APPLICATION->ShowAjaxHead(); } $arTemplate = null; $canWrite = false; if ($arParams["ID"] > 0) { $dbTemplatesList = CBPWorkflowTemplateLoader::GetList( array(), array('ID' => $arParams['ID']), false, false, array('ID', 'DOCUMENT_TYPE', 'NAME', 'DESCRIPTION', 'CONSTANTS') ); if ($arTemplate = $dbTemplatesList->Fetch()) { $canWrite = CBPDocument::CanUserOperateDocumentType( CBPCanUserOperateOperation::CreateWorkflow, $GLOBALS["USER"]->GetID(), $arTemplate["DOCUMENT_TYPE"] ); $arResult["DOCUMENT_TYPE"] = $arTemplate["DOCUMENT_TYPE"]; $arResult["NAME"] = $arTemplate["NAME"]; $arResult['DESCRIPTION'] = $arTemplate['DESCRIPTION']; $arResult["CONSTANTS"] = $arTemplate["CONSTANTS"]; $arResult["ID"] = $arTemplate["ID"]; } } if (!is_array($arTemplate) || !$canWrite) { $GLOBALS["APPLICATION"]->AuthForm(GetMessage("ACCESS_DENIED")); die(); } $arParams["SET_TITLE"] = ($arParams["SET_TITLE"] == "N" ? "N" : "Y"); $arParams["SET_NAV_CHAIN"] = ($arParams["SET_NAV_CHAIN"] == "N" ? "N" : "Y"); $arResult["EDIT_PAGE_TEMPLATE"] = $arParams["EDIT_PAGE_TEMPLATE"]; $arResult["BackUrl"] = $_REQUEST["back_url"]; if (strlen($arResult["BackUrl"]) <= 0) $arResult["BackUrl"] = $arParams["BACK_URL"]; if (strlen($arResult["BackUrl"]) <= 0) $arResult["BackUrl"] = $APPLICATION->GetCurPageParam(); $arResult["FatalErrorMessage"] = ""; $arResult["ErrorMessage"] = ""; if (strlen($arResult["FatalErrorMessage"]) <= 0) { if (strlen($_REQUEST["cancel_action"]) > 0) LocalRedirect($arResult['BackUrl']); } if (strlen($arResult["FatalErrorMessage"]) <= 0) { $runtime = CBPRuntime::GetRuntime(); $runtime->StartRuntime(); $arResult["DocumentService"] = $runtime->GetService("DocumentService"); if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($_REQUEST["save_action"]) > 0 && check_bitrix_sessid()) { $errorMessageTmp = ""; $arRequest = $_REQUEST; foreach ($_FILES as $k => $v) { if (array_key_exists("name", $v)) { if (is_array($v["name"])) { $ks = array_keys($v["name"]); for ($i = 0, $cnt = count($ks); $i < $cnt; $i++) { $ar = array(); foreach ($v as $k1 => $v1) $ar[$k1] = $v1[$ks[$i]]; $arRequest[$k][] = $ar; } } else { $arRequest[$k] = $v; } } } $arKeys = array_keys($arResult["CONSTANTS"]); foreach ($arKeys as $variableKey) { $arErrorsTmp = array(); $arResult["CONSTANTS"][$variableKey]["Default"] = $arResult["DocumentService"]->GetFieldInputValue( $arResult["DOCUMENT_TYPE"], $arResult["CONSTANTS"][$variableKey], $variableKey, $arRequest, $arErrorsTmp ); $arResult["CONSTANTS"][$variableKey]['Default_printable'] = $arResult["DocumentService"]->GetFieldInputValuePrintable( $arResult["DOCUMENT_TYPE"], $arResult["CONSTANTS"][$variableKey], $arResult["CONSTANTS"][$variableKey]["Default"] ); if (count($arErrorsTmp) > 0) { foreach ($arErrorsTmp as $e) { $errorMessageTmp .= GetMessage("BPWFSC_ARGUMENT_ERROR", array('#PARAM#' => $arResult["CONSTANTS"][$variableKey]['Name'], '#ERROR#' => $e["message"]) ).' '; } } if (empty($arErrorsTmp)) { $required = !(!$arResult["CONSTANTS"][$variableKey]['Required'] || is_int($arResult["CONSTANTS"][$variableKey]['Required']) && ($arResult["CONSTANTS"][$variableKey]['Required'] == 0) || (strtoupper($arResult["CONSTANTS"][$variableKey]['Required']) == "N")); if ($required && (is_array($arResult["CONSTANTS"][$variableKey]["Default"]) && count($arResult["CONSTANTS"][$variableKey]["Default"]) <= 0 || !is_array($arResult["CONSTANTS"][$variableKey]["Default"]) && $arResult["CONSTANTS"][$variableKey]["Default"] === null) ) { $errorMessageTmp .= GetMessage("BPWFSC_ARGUMENT_NULL", array('#PARAM#' => $arResult["CONSTANTS"][$variableKey]['Name'])).' '; } } } $errorMessageTmp = trim($errorMessageTmp); if (strlen($errorMessageTmp) <= 0) { CBPWorkflowTemplateLoader::Update($arResult["ID"], array("CONSTANTS" => $arResult["CONSTANTS"])); if ($arParams['AJAX_RESPONSE']) { $APPLICATION->RestartBuffer(); echo CUtil::PhpToJSObject(array('SUCCESS' => true)); CMain::FinalActions(); die; } LocalRedirect($arResult['BackUrl']); } else { $arResult["ErrorMessage"] .= $errorMessageTmp; if ($arParams['AJAX_RESPONSE']) { $APPLICATION->RestartBuffer(); echo CUtil::PhpToJSObject(array('ERROR_MESSAGE' => $arResult["ErrorMessage"])); CMain::FinalActions(); die; } } } } $this->IncludeComponentTemplate(); if (strlen($arResult["FatalErrorMessage"]) <= 0) { if ($arParams["SET_TITLE"] == "Y") $APPLICATION->SetTitle(str_replace("#NAME#", $arResult["NAME"], GetMessage("BPWFSC_PAGE_TITLE"))); if ($arParams["SET_NAV_CHAIN"] == "Y") $APPLICATION->AddChainItem(str_replace("#NAME#", $arResult["NAME"], GetMessage("BPWFSC_PAGE_TITLE"))); } else { if ($arParams["SET_TITLE"] == "Y") $APPLICATION->SetTitle(GetMessage("BPWFSC_ERROR")); if ($arParams["SET_NAV_CHAIN"] == "Y") $APPLICATION->AddChainItem(GetMessage("BPWFSC_ERROR")); } ?>