'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; } } ?>