| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | 
							- <?php 
 
- /*
 
- 	Effet de workflow
 
- 	Execute un autre workflow, nb: le workflow executé doit être du même type que le workflow executant
 
- */
 
- class LoadWorkflowEffect{
 
- 	//Descriptif du type d'effet
 
- 	public static function manifest($key = null){
 
- 		$manifest = array(
 
- 			'slug' => 'workflow',
 
- 			'label' => 'Lancer un workflow',
 
- 			'class' => get_called_class(),
 
- 			'path' => __FILE__,
 
- 			'icon' => 'fas fa-network-wired',
 
- 			'color' => '#ff9f43',
 
- 		);
 
- 		if(!isset($key)) return $manifest;
 
- 		return isset($manifest[$key]) ? $manifest[$key] : '' ;
 
- 	}
 
- 	//méthode d'affichage de l'effet
 
- 	public static function form($item){
 
- 		$html  = '';
 
- 		$class = get_called_class();
 
- 		
 
- 		//$class::manifest('icon')
 
- 		ob_start();
 
- 		?>
 
- 		
 
- 		<div class="input-group">
 
- 			<div class="input-group-text input-group-prepend">
 
- 			Workflow  : 
 
- 			</div>
 
- 			<input type="text" data-id="workflow-id" class="form-control" value="<?php echo isset($item['workflow-id']) ? $item['workflow-id'] : '' ?>" placeholder="Id du workflow">
 
- 		</div>
 
- 		
 
- 		<?php
 
- 		$html = ob_get_clean();
 
- 		return $html;
 
- 	}
 
- 	public static function run($effect,$parameters = array()){
 
- 		global $conf;
 
- 		$logs = '';
 
- 		
 
- 		if( in_array($parameters['workflow']['type'] , array( Workflow::TYPE_ENTITY, Workflow::TYPE_LIST))  ){
 
- 			if(isset($parameters['current'])) $parameters['current'] = $parameters['current']->toArray();
 
- 			if(isset($parameters['old'])) $parameters['old'] = $parameters['old']->toArray();
 
- 		}
 
- 		$effect->values['workflow-id'] = template($effect->values['workflow-id'],$parameters,true);
 
- 	
 
- 		$toLoad = Workflow::getById($effect->values['workflow-id']);
 
- 		if(!$toLoad){
 
- 			$logs.=' Workflow inexistant';
 
- 			return $logs;
 
- 		}
 
- 	
 
- 		if( $parameters['workflow']['type'] != $toLoad->type ){
 
- 			$logs.=" Workflow d'origine d'un type différent du workflow de destination";
 
- 			return $logs;
 
- 		}
 
- 		$logs .= '<i class="'.self::manifest('icon').'"></i> Lancement de '.$toLoad->label;
 
- 		
 
- 		$logs .= implode('<br>',$toLoad->run(null,$parameters));
 
- 		return $logs;
 
- 	}
 
- }
 
- ?>
 
 
  |