diff options
Diffstat (limited to 'engine/lib/elgglib.php')
-rw-r--r-- | engine/lib/elgglib.php | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 497f25953..f925429de 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -875,12 +875,19 @@ function unregister_elgg_event_handler($event, $object_type, $callback) { function elgg_trigger_event($event, $object_type, $object = null) { global $CONFIG; - $events = array( - $CONFIG->events[$event][$object_type], - $CONFIG->events['all'][$object_type], - $CONFIG->events[$event]['all'], - $CONFIG->events['all']['all'], - ); + $events = array(); + if (isset($CONFIG->events[$event][$object_type])) { + $events[] = $CONFIG->events[$event][$object_type]; + } + if (isset($CONFIG->events['all'][$object_type])) { + $events[] = $CONFIG->events['all'][$object_type]; + } + if (isset($CONFIG->events[$event]['all'])) { + $events[] = $CONFIG->events[$event]['all']; + } + if (isset($CONFIG->events['all']['all'])) { + $events[] = $CONFIG->events['all']['all']; + } $args = array($event, $object_type, $object); @@ -1092,7 +1099,9 @@ function elgg_trigger_plugin_hook($hook, $type, $params = null, $returnvalue = n if (isset($CONFIG->hooks[$hook]['all'])) { $hooks[] = $CONFIG->hooks[$hook]['all']; } - $hooks[] = $CONFIG->hooks['all']['all']; + if (isset($CONFIG->hooks['all']['all'])) { + $hooks[] = $CONFIG->hooks['all']['all']; + } foreach ($hooks as $callback_list) { if (is_array($callback_list)) { |