%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/activities/bitrix/codeactivity/ |
Current File : /home/bitrix/www/bitrix/activities/bitrix/codeactivity/codeactivity.php |
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); class CBPCodeActivity extends CBPActivity { public function __construct($name) { parent::__construct($name); $this->arProperties = array("Title" => "", "ExecuteCode" => ""); } public function Execute() { if (strlen($this->ExecuteCode) > 0) @eval($this->ExecuteCode); return CBPActivityExecutionStatus::Closed; } public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null) { $arErrors = array(); if ($user == null || !$user->isAdmin()) { $arErrors[] = array( "code" => "perm", "message" => GetMessage("BPCA_NO_PERMS"), ); } if (strlen($arTestProperties["ExecuteCode"]) <= 0) { $arErrors[] = array( "code" => "emptyCode", "message" => GetMessage("BPCA_EMPTY_CODE"), ); } return array_merge($arErrors, parent::ValidateProperties($arTestProperties, $user)); } public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = null, $formName = "") { $runtime = CBPRuntime::GetRuntime(); if (!is_array($arWorkflowParameters)) $arWorkflowParameters = array(); if (!is_array($arWorkflowVariables)) $arWorkflowVariables = array(); if (!is_array($arCurrentValues)) { $arCurrentValues = array("execute_code" => ""); $arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName); if (is_array($arCurrentActivity["Properties"])) $arCurrentValues["execute_code"] = $arCurrentActivity["Properties"]["ExecuteCode"]; } return $runtime->ExecuteResourceFile( __FILE__, "properties_dialog.php", array( "arCurrentValues" => $arCurrentValues, "formName" => $formName, ) ); } public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors) { $arErrors = array(); $runtime = CBPRuntime::GetRuntime(); $arProperties = array("ExecuteCode" => $arCurrentValues["execute_code"]); $arErrors = self::ValidateProperties($arProperties, new CBPWorkflowTemplateUser(CBPWorkflowTemplateUser::CurrentUser)); if (count($arErrors) > 0) return false; $arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName); $arCurrentActivity["Properties"] = $arProperties; return true; } }