%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/activities/bitrix/setstatetitleactivity/ |
Current File : //home/bitrix/www/bitrix/activities/bitrix/setstatetitleactivity/setstatetitleactivity.php |
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); class CBPSetStateTitleActivity extends CBPActivity { public function __construct($name) { parent::__construct($name); $this->arProperties = array("Title" => "", "TargetStateTitle" => ""); } public function Execute() { $rootActivity = $this->GetRootActivity(); $stateService = $this->workflow->GetService("StateService"); if($rootActivity instanceof CBPStateMachineWorkflowActivity) { $arState = $stateService->GetWorkflowState($this->GetWorkflowInstanceId()); $arActivities = $rootActivity->CollectNestedActivities(); foreach($arActivities as $activity) if($activity->GetName() == $arState["STATE_NAME"]) break; $stateService->SetStateTitle( $this->GetWorkflowInstanceId(), $activity->Title.($this->TargetStateTitle!=''?": ".$this->TargetStateTitle:'') ); } else { if($this->TargetStateTitle!='') { $stateService->SetStateTitle( $this->GetWorkflowInstanceId(), $this->TargetStateTitle ); $rootActivity->SetCustomStatusMode(); } } return CBPActivityExecutionStatus::Closed; } public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null) { $arErrors = array(); /* if (strlen($arTestProperties["TargetStateTitle"]) <= 0) { $arErrors[] = array("code" => "emptyState", "parameter" => "TargetStateTitle", "message" => "Bad target state."); } */ 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($arCurrentValues)) { $arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName); if (is_array($arCurrentActivity["Properties"]) && array_key_exists("TargetStateTitle", $arCurrentActivity["Properties"])) $arCurrentValues["target_state_title"] = $arCurrentActivity["Properties"]["TargetStateTitle"]; } return $runtime->ExecuteResourceFile( __FILE__, "properties_dialog.php", array( "arCurrentValues" => $arCurrentValues, ) ); } public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors) { $arErrors = array(); $runtime = CBPRuntime::GetRuntime(); $arProperties = array("TargetStateTitle" => $arCurrentValues["target_state_title"]); $arErrors = self::ValidateProperties($arProperties, new CBPWorkflowTemplateUser(CBPWorkflowTemplateUser::CurrentUser)); if (count($arErrors) > 0) return false; $arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName); $arCurrentActivity["Properties"] = $arProperties; return true; } } ?>