diff options
author | rvelices <rv-github@modusoptimus.com> | 2010-12-23 20:46:16 +0000 |
---|---|---|
committer | rvelices <rv-github@modusoptimus.com> | 2010-12-23 20:46:16 +0000 |
commit | 7d7544476103fe66b65ba544452280c2bf6de0e7 (patch) | |
tree | 301a370bc15cb99a0d9e4606bc64d159e20efee9 /include/functions_plugins.inc.php | |
parent | 70b02e28f1252885e8e2c1821d175683a1f8094a (diff) |
- faster trigger_event/trigger_action (it was overly complicated)
- added a new param to get_thumbnail_url event
- get_thumbnail_location is called only if the thumbnail does not exist
git-svn-id: http://piwigo.org/svn/trunk@8263 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'include/functions_plugins.inc.php')
-rw-r--r-- | include/functions_plugins.inc.php | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/include/functions_plugins.inc.php b/include/functions_plugins.inc.php index 171bd84f2..465a22017 100644 --- a/include/functions_plugins.inc.php +++ b/include/functions_plugins.inc.php @@ -119,26 +119,16 @@ function trigger_event($event, $data=null) { return $data; } - $args = array_slice(func_get_args(), 2); + $args = func_get_args(); foreach ($pwg_event_handlers[$event] as $priority => $handlers) { foreach($handlers as $handler) { - $all_args = array_merge( array($data), $args); $function_name = $handler['function']; $accepted_args = $handler['accepted_args']; - - if ( $accepted_args == 1 ) - $the_args = array($data); - elseif ( $accepted_args > 1 ) - $the_args = array_slice($all_args, 0, $accepted_args); - elseif ( $accepted_args == 0 ) - $the_args = NULL; - else - $the_args = $all_args; - - $data = call_user_func_array($function_name, $the_args); + $args[1] = $data; + $data = call_user_func_array($function_name, array_slice($args,1,$accepted_args) ); } } trigger_action('trigger', @@ -159,26 +149,16 @@ function trigger_action($event, $data=null) { return; } - $args = array_slice(func_get_args(), 2); + $args = func_get_args(); foreach ($pwg_event_handlers[$event] as $priority => $handlers) { foreach($handlers as $handler) { - $all_args = array_merge( array($data), $args); $function_name = $handler['function']; $accepted_args = $handler['accepted_args']; - if ( $accepted_args == 1 ) - $the_args = array($data); - elseif ( $accepted_args > 1 ) - $the_args = array_slice($all_args, 0, $accepted_args); - elseif ( $accepted_args == 0 ) - $the_args = NULL; - else - $the_args = $all_args; - - call_user_func_array($function_name, $the_args); + call_user_func_array($function_name, array_slice($args,1,$accepted_args) ); } } } |