From 7d7544476103fe66b65ba544452280c2bf6de0e7 Mon Sep 17 00:00:00 2001 From: rvelices Date: Thu, 23 Dec 2010 20:46:16 +0000 Subject: - 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 --- include/functions_plugins.inc.php | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) (limited to 'include/functions_plugins.inc.php') 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) ); } } } -- cgit v1.2.3