'key', 'type' => 'string', 'workflow' => 'int', 'values' => 'longstring', 'sort' => 'int' ); //Colonnes indexées public $indexes = array(); //Méthode d'execution d'un effet public function run($parameters = array()){ //On récupere la calsse du type d'effet pour l'effet courant $type = self::types($this->type); // On met les variables de workflow a disposition de l'effet // On utilise pas $conf->get volontairement pour eviter le session cache conflictuel avec les workflows $theConf = Configuration::load(array('key'=>'workflow-var')); $confValue = !$theConf ? '{}' : decrypt($theConf->value); $parameters['workflow-var'] = json_decode($confValue,true); //On execute la méthode run de la classe du type d'effet ciblée en lui fournissant les données de l'effet et les données workflow (entité, item courant etc...) $results = $type::run($this,$parameters); $logs[] = ' '.$type::manifest('label').'
'.$results.'
'; return is_array($logs) ? $logs : array(); } //Récuperation des ttyes d'effets possibles public static function types($slug = null){ $types = array(); //Récuperations des types d'effet par defaut définit dans le dossier effect foreach (glob(__DIR__.SLASH.'effect'.SLASH.'*.class.php') as $file) { require_once($file); $class = str_replace('.class.php','',basename($file)); $infos = $class::manifest(); $types[$infos['slug']] = $class; } //Récuperation des effets fournis par d'autres plugins Plugin::callHook('workflow_effect',array(&$types)); if(!isset($slug)) return $types; return isset($types[$slug]) ? $types[$slug] : $types['mail']; } } ?>