From b25f400cd6bc255b01e05ac274f050ba4039a411 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Mon, 21 Dec 2015 05:41:34 -0500
Subject: [PATCH] Merge branch 'master' of git.ispconfig.org:ispconfig/ispconfig3
---
server/lib/classes/plugins.inc.php | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/server/lib/classes/plugins.inc.php b/server/lib/classes/plugins.inc.php
index 4771487..9b9b143 100644
--- a/server/lib/classes/plugins.inc.php
+++ b/server/lib/classes/plugins.inc.php
@@ -73,7 +73,6 @@
} else {
$app->log('Plugins directory missing: '.$plugins_dir, LOGLEVEL_ERROR);
}
-
}
/*
@@ -138,12 +137,14 @@
}
- 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;
}
}
--
Gitblit v1.9.1