From ad71c8f3e60cddbcdaaf21d15f5b8f3cca4cec15 Mon Sep 17 00:00:00 2001 From: ben Date: Fri, 28 Mar 2008 17:20:20 +0000 Subject: Fix for trigger_plugin_hook git-svn-id: https://code.elgg.org/elgg/trunk@283 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/elgglib.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'engine') diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 2691eb9bd..6a15f2e9a 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -712,18 +712,36 @@ function trigger_plugin_hook($hook, $entity_type, $params = null, $returnvalue = null) { global $CONFIG; + if (!isset($CONFIG->hooks) || !isset($CONFIG->hooks[$hook]) || !isset($CONFIG->hooks[$hook][$entity_type])) + return $returnvalue; + if (!empty($CONFIG->hooks[$hook][$entity_type]) && is_array($CONFIG->hooks[$hook][$entity_type])) { foreach($CONFIG->hooks[$hook][$entity_type] as $hookfunction) { $temp_return_value = $hookfunction($hook, $entity_type, $returnvalue, $params); if (!is_null($temp_return_value)) $returnvalue = $temp_return_value; } } + + if (!isset($CONFIG->hooks['all'][$entity_type])) + return $returnvalue; + if (!empty($CONFIG->hooks['all'][$entity_type]) && is_array($CONFIG->hooks['all'][$entity_type])) { foreach($CONFIG->hooks['all'][$entity_type] as $hookfunction) { $temp_return_value = $hookfunction('all', $entity_type, $returnvalue, $params); if (!is_null($temp_return_value)) $returnvalue = $temp_return_value; } } + + if (!isset($CONFIG->hooks[$hook]['all'])) + return $returnvalue; + + if (!empty($CONFIG->hooks[$hook]['all']) && is_array($CONFIG->hooks[$hook]['all'])) { + foreach($CONFIG->hooks[$hook]['all'] as $hookfunction) { + $temp_return_value = $hookfunction($hook, 'all', $returnvalue, $params); + if (!is_null($temp_return_value)) $returnvalue = $temp_return_value; + } + } + return $returnvalue; } -- cgit v1.2.3