|
@@ -42,9 +42,10 @@ function use_plugin ($name) {
|
|
|
* @return mixed $data
|
|
|
*/
|
|
|
function do_hook ($name) {
|
|
|
- global $squirrelmail_plugin_hooks;
|
|
|
+ global $squirrelmail_plugin_hooks, $currentHookName;
|
|
|
$data = func_get_args();
|
|
|
$ret = '';
|
|
|
+ $currentHookName = $name;
|
|
|
|
|
|
if (isset($squirrelmail_plugin_hooks[$name])
|
|
|
&& is_array($squirrelmail_plugin_hooks[$name])) {
|
|
@@ -56,6 +57,8 @@ function do_hook ($name) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ $currentHookName = '';
|
|
|
+
|
|
|
/* Variable-length argument lists have a slight problem when */
|
|
|
/* passing values by reference. Pity. This is a workaround. */
|
|
|
return $data;
|
|
@@ -69,8 +72,9 @@ function do_hook ($name) {
|
|
|
* @return mixed the return value of the hook function
|
|
|
*/
|
|
|
function do_hook_function($name,$parm=NULL) {
|
|
|
- global $squirrelmail_plugin_hooks;
|
|
|
+ global $squirrelmail_plugin_hooks, $currentHookName;
|
|
|
$ret = '';
|
|
|
+ $currentHookName = $name;
|
|
|
|
|
|
if (isset($squirrelmail_plugin_hooks[$name])
|
|
|
&& is_array($squirrelmail_plugin_hooks[$name])) {
|
|
@@ -82,6 +86,8 @@ function do_hook_function($name,$parm=NULL) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ $currentHookName = '';
|
|
|
+
|
|
|
/* Variable-length argument lists have a slight problem when */
|
|
|
/* passing values by reference. Pity. This is a workaround. */
|
|
|
return $ret;
|
|
@@ -96,8 +102,9 @@ function do_hook_function($name,$parm=NULL) {
|
|
|
* @return string a concatenation of the results of each plugin function
|
|
|
*/
|
|
|
function concat_hook_function($name,$parm=NULL) {
|
|
|
- global $squirrelmail_plugin_hooks;
|
|
|
+ global $squirrelmail_plugin_hooks, $currentHookName;
|
|
|
$ret = '';
|
|
|
+ $currentHookName = $name;
|
|
|
|
|
|
if (isset($squirrelmail_plugin_hooks[$name])
|
|
|
&& is_array($squirrelmail_plugin_hooks[$name])) {
|
|
@@ -109,6 +116,8 @@ function concat_hook_function($name,$parm=NULL) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ $currentHookName = '';
|
|
|
+
|
|
|
/* Variable-length argument lists have a slight problem when */
|
|
|
/* passing values by reference. Pity. This is a workaround. */
|
|
|
return $ret;
|
|
@@ -128,7 +137,7 @@ function concat_hook_function($name,$parm=NULL) {
|
|
|
* @return bool the result of the function
|
|
|
*/
|
|
|
function boolean_hook_function($name,$parm=NULL,$priority=0,$tie=false) {
|
|
|
- global $squirrelmail_plugin_hooks;
|
|
|
+ global $squirrelmail_plugin_hooks, $currentHookName;
|
|
|
$yea = 0;
|
|
|
$nay = 0;
|
|
|
$ret = $tie;
|
|
@@ -137,6 +146,7 @@ function boolean_hook_function($name,$parm=NULL,$priority=0,$tie=false) {
|
|
|
is_array($squirrelmail_plugin_hooks[$name])) {
|
|
|
|
|
|
/* Loop over the plugins that registered the hook */
|
|
|
+ $currentHookName = $name;
|
|
|
foreach ($squirrelmail_plugin_hooks[$name] as $function) {
|
|
|
if (function_exists($function)) {
|
|
|
$ret = $function($parm);
|
|
@@ -147,6 +157,7 @@ function boolean_hook_function($name,$parm=NULL,$priority=0,$tie=false) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ $currentHookName = '';
|
|
|
|
|
|
/* Examine the aftermath and assign the return value appropriately */
|
|
|
if (($priority > 0) && ($yea)) {
|
|
@@ -189,4 +200,4 @@ if (isset($plugins) && is_array($plugins)) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-?>
|
|
|
+?>
|