Class method support for hooks
This commit is contained in:
parent
a8823ae7d8
commit
df2990b27e
@ -6,6 +6,10 @@ namespace Zotlabs\Extend;
|
|||||||
class Hook {
|
class Hook {
|
||||||
|
|
||||||
static public function register($hook,$file,$function,$version = 1,$priority = 0) {
|
static public function register($hook,$file,$function,$version = 1,$priority = 0) {
|
||||||
|
if(is_array($function)) {
|
||||||
|
$function = serialize($function);
|
||||||
|
}
|
||||||
|
|
||||||
$r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' and priority = %d and hook_version = %d LIMIT 1",
|
$r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' and priority = %d and hook_version = %d LIMIT 1",
|
||||||
dbesc($hook),
|
dbesc($hook),
|
||||||
dbesc($file),
|
dbesc($file),
|
||||||
@ -28,6 +32,9 @@ class Hook {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static public function unregister($hook,$file,$function,$version = 1,$priority = 0) {
|
static public function unregister($hook,$file,$function,$version = 1,$priority = 0) {
|
||||||
|
if(is_array($function)) {
|
||||||
|
$function = serialize($function);
|
||||||
|
}
|
||||||
$r = q("DELETE FROM hook WHERE hook = '%s' AND `file` = '%s' AND `function` = '%s' and priority = %d and hook_version = %d",
|
$r = q("DELETE FROM hook WHERE hook = '%s' AND `file` = '%s' AND `function` = '%s' and priority = %d and hook_version = %d",
|
||||||
dbesc($hook),
|
dbesc($hook),
|
||||||
dbesc($file),
|
dbesc($file),
|
||||||
@ -63,6 +70,9 @@ class Hook {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static public function insert($hook, $fn, $version = 0, $priority = 0) {
|
static public function insert($hook, $fn, $version = 0, $priority = 0) {
|
||||||
|
if(is_array($fn)) {
|
||||||
|
$fn = serialize($fn);
|
||||||
|
}
|
||||||
|
|
||||||
if(! is_array(App::$hooks))
|
if(! is_array(App::$hooks))
|
||||||
App::$hooks = array();
|
App::$hooks = array();
|
||||||
|
@ -284,8 +284,9 @@ function call_hooks($name, &$data = null) {
|
|||||||
foreach(App::$hooks[$name] as $hook) {
|
foreach(App::$hooks[$name] as $hook) {
|
||||||
if($hook[0])
|
if($hook[0])
|
||||||
@include_once($hook[0]);
|
@include_once($hook[0]);
|
||||||
|
if(preg_match('|^a:[0-9]+:{.*}$|s', $hook[1]))
|
||||||
if(function_exists($hook[1])) {
|
$hook[1] = unserialize($hook[1]);
|
||||||
|
if(is_callable($hook[1])) {
|
||||||
$func = $hook[1];
|
$func = $hook[1];
|
||||||
if($hook[3])
|
if($hook[3])
|
||||||
$func($data);
|
$func($data);
|
||||||
|
Reference in New Issue
Block a user