'entity-field',
'label' => 'Entité',
'type' => array(Workflow::TYPE_ENTITY,Workflow::TYPE_LIST),
'class' => get_called_class(),
'path' => __FILE__,
'icon' => 'fas fa-leaf',
'attributes' => ' data-filter-type="entity-field" ',
'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 = '
'.$entity['label'].'.
';
return $stream;;
}
//Méthode de vérification de la cause
public static function check($filter,$parameters = array()){
if(!isset($parameters['current'])) throw new Exception("Aucun item entité n'est présent");
$column = $filter['subcolumn']['entity-field'];
$class = get_class($parameters['current']);
$columnValue = null;
//la colonne évoquée peut être un attribut de classe ou une méthode de classe
if( property_exists ( $class , $column ) ) $columnValue = $parameters['current']->$column;
if( method_exists ( $class , $column ) ) $columnValue = $parameters['current']->$column();
switch($filter['operator']){
case '=':
if(!isset($columnValue) ) return false;
if($columnValue != $filter['value'][0] ) return false;
break;
case '!=':
if(isset($columnValue) && $columnValue == $filter['value'][0] ) return false;
break;
case '<':
if($columnValue > $filter['value'][0]) return false;
break;
case '>':
if($columnValue < $filter['value'][0]) return false;
break;
case 'like':
if( strpos( mb_strtolower($columnValue), mb_strtolower($filter['value'][0]) ) === false ) return false;
break;
}
return true;
}
}
?>