| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | <?php /*	Cause de workflow	Compare une variable (scopée sur le workflow) en configuration avec la valeur définie dans la cause*/class VariableCause{	//Descriptif de la cause	public static function manifest($key = null){		$manifest = array(			'slug' => 'var',			'label' => 'Variable',			'type' => array(Workflow::TYPE_ALL),			'class' => get_called_class(),			'path' => __FILE__,			'icon' => 'fas fa-dollar-sign',			'attributes' => ' data-filter-type="configuration-var" ',			'color' => '#ff9f43',		);		if(!isset($key)) return $manifest;		return isset($manifest[$key]) ? $manifest[$key] : '' ;	}	//Type de filtre de cause custom pour cette cause (champs additionnels)	public static function filter($entity = array()){				$stream = '<div class="filter-value-block" data-value-type="configuration-var" data-value-selector=".filter-value:last-child">			<div class="filter-subfield  d-inline-block">				<i class="fas fa-dollar-sign"></i> <input type="text" data-id="var-slug" class="d-inline-block mt-2 border-0 font-weight-bold text-primary" placeholder="Nom de la variable">';			$stream .='			</div>			<select class="form-control filter-operator border-0 text-primary">				<option value="=">Égal</option>				<option value="!=">Différent</option>				<option value=">">Inférieur</option>				<option value="<">Supérieur</option>				<option value="like">Contient</option>			</select>			<input type="text" class="form-control filter-value" >		</div>';				return $stream;;	}	//Méthode de vérification de la cause	public static function check($filter,$parameters = array()){		global $conf;				//On récupere sans passer par le $conf->get dont le cache session n'ets aps compatible avec les workflows		$theConf = Configuration::load(array('key'=>'workflow-var'));		$confValue = !$theConf ? '{}' : decrypt($theConf->value);		$workflowVars = json_decode($confValue,true);				$varValue = isset($workflowVars[$filter['subcolumn']['var-slug']]) ? $workflowVars[$filter['subcolumn']['var-slug']] :'';		global $conf;		switch($filter['operator']){			case '=':				if($varValue != $filter['value'][0]) return false;			break;			case '!=':				if($varValue == $filter['value'][0]) return false;			break;			case '<':				if($varValue > $filter['value'][0]) return false;			break;			case '>':				if($varValue < $filter['value'][0]) return false;			break;			case 'like':				if( strpos(  mb_strtolower($varValue), mb_strtolower($filter['value'][0]) ) === false  ) return false;			break;		}		return true;	}	}?>
 |