From 339085eb13d748e1c1dd01af68b0d5903be8ca6f Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Sun, 20 Sep 2009 07:47:44 +0000 Subject: - Patch #306611 by jbomb, sun | Damien Tournoud: fixed fatal error when trying to invoke non-existing action callbacks. --- includes/actions.inc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'includes/actions.inc') diff --git a/includes/actions.inc b/includes/actions.inc index 65089b6ac..3ef5b848a 100644 --- a/includes/actions.inc +++ b/includes/actions.inc @@ -77,8 +77,13 @@ function actions_do($action_ids, $object = NULL, $context = NULL, $a1 = NULL, $a // Configurable actions need parameters. if (is_numeric($action_id)) { $function = $params['callback']; - $context = array_merge($context, $params); - $actions_result[$action_id] = $function($object, $context, $a1, $a2); + if (function_exists($function)) { + $context = array_merge($context, $params); + $actions_result[$action_id] = $function($object, $context, $a1, $a2); + } + else { + $actions_result[$action_id] = FALSE; + } } // Singleton action; $action_id is the function name. else { @@ -92,8 +97,13 @@ function actions_do($action_ids, $object = NULL, $context = NULL, $a1 = NULL, $a if (is_numeric($action_ids)) { $action = db_query("SELECT callback, parameters FROM {actions} WHERE aid = :aid", array(':aid' => $action_ids))->fetchObject(); $function = $action->callback; - $context = array_merge($context, unserialize($action->parameters)); - $actions_result[$action_ids] = $function($object, $context, $a1, $a2); + if (function_exists($function)) { + $context = array_merge($context, unserialize($action->parameters)); + $actions_result[$action_ids] = $function($object, $context, $a1, $a2); + } + else { + $actions_result[$action_ids] = FALSE; + } } // Singleton action; $action_ids is the function name. else { -- cgit v1.2.3