- Hook unregister methods (#1488184)

pull/1/head
alecpl 12 years ago
parent 2f88b17d34
commit 479af90579

@ -132,6 +132,17 @@ abstract class rcube_plugin
$this->api->register_hook($hook, $callback);
}
/**
* Unregister a callback function for a specific (server-side) hook.
*
* @param string $hook Hook name
* @param mixed $callback Callback function as string or array with object reference and method name
*/
public function remove_hook($hook, $callback)
{
$this->api->unregister_hook($hook, $callback);
}
/**
* Load localized texts from the plugins dir
*
@ -315,6 +326,4 @@ abstract class rcube_plugin
return $this->ID.'.'.$key;
}
}

@ -230,6 +230,20 @@ class rcube_plugin_api
'message' => "Invalid callback function for $hook"), true, false);
}
/**
* Allow a plugin object to unregister a callback.
*
* @param string $hook Hook name
* @param mixed $callback String with global function name or array($obj, 'methodname')
*/
public function unregister_hook($hook, $callback)
{
$callback_id = array_search($callback, $this->handlers[$hook]);
if ($callback_id !== false) {
unset($this->handlers[$hook][$callback_id]);
}
}
/**
* Triggers a plugin hook.

Loading…
Cancel
Save