Marius Burkard
2016-04-20 67d99a763eb9f44d3ef4fd334d1293ae8ccd847e
server/lib/classes/plugins.inc.php
@@ -73,7 +73,6 @@
      } else {
         $app->log('Plugins directory missing: '.$plugins_dir, LOGLEVEL_ERROR);
      }
   }
   /*
@@ -134,16 +133,18 @@
   function registerAction($action_name, $plugin_name, $function_name) {
      global $app;
      $this->subscribed_actions[$action_name][] = array('plugin' => $plugin_name, 'function' => $function_name);
      if($this->debug)  $app->log("Registered function '$function_name' from plugin '$plugin_name' for action '$event_name'.", LOGLEVEL_DEBUG);
      if($this->debug)  $app->log("Registered function '$function_name' from plugin '$plugin_name' for action '$action_name'.", LOGLEVEL_DEBUG);
   }
   function raiseAction($action_name, $data) {
   function raiseAction($action_name, $data, $return_data = false) {
      global $app;
      //* Get the subscriptions for this action
      $actions = (isset($this->subscribed_actions[$action_name]))?$this->subscribed_actions[$action_name]:'';
      if($this->debug) $app->log('Raised action: '.$action_name, LOGLEVEL_DEBUG);
      $result = '';
      if(is_array($actions)) {
         foreach($actions as $action) {
@@ -154,8 +155,13 @@
            $app->log("Calling function '$function_name' from plugin '$plugin_name' raised by action '$action_name'.", LOGLEVEL_DEBUG);
            $state = call_user_func(array($app->loaded_plugins[$plugin_name], $function_name), $action_name, $data);
            //* ensure that we return the highest warning / error level if a error occured in one of the functions
            if($state == 'warning' && $state_out != 'error') $state_out = 'warning';
            if($state == 'error') $state_out = 'error';
            if($return_data) {
               if($state) $result .= $state;
            } else {
               if($state == 'warning' && $state_out != 'error') $state_out = 'warning';
               elseif($state == 'error') $state_out = 'error';
            }
            unset($plugin_name);
            unset($function_name);
         }
@@ -163,7 +169,8 @@
      unset($action);
      unset($actions);
      return $state_out;
      if($return_data == true) return $result;
      else return $state_out;
   }
}