diff options
author | Dries Buytaert <dries@buytaert.net> | 2003-09-14 18:33:16 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2003-09-14 18:33:16 +0000 |
commit | 9fbab016f937ce4c6e2d93e34b046f80c675fae6 (patch) | |
tree | cfb4de6b4a86ee61c6c783d82df99eedc85b7842 /modules/node/node.module | |
parent | df3afcbc449773f4768e5dc4b05e7fb2c1197283 (diff) | |
download | brdo-9fbab016f937ce4c6e2d93e34b046f80c675fae6.tar.gz brdo-9fbab016f937ce4c6e2d93e34b046f80c675fae6.tar.bz2 |
- Tidied up the usage of module_invoke() and module_invoke_all(). Patch by
Jonathan Chaffer.
Diffstat (limited to 'modules/node/node.module')
-rw-r--r-- | modules/node/node.module | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/modules/node/node.module b/modules/node/node.module index 2657bcd11..ef26aedb9 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -219,7 +219,7 @@ function node_teaser($body) { return substr($body, 0, $size); } -function node_invoke(&$node, $hook, $arg = 0) { +function node_invoke(&$node, $hook, $a2 = NULL, $a3 = NULL, $a4 = NULL) { if (is_array($node)) { $function = $node["type"] ."_$hook"; } @@ -231,7 +231,7 @@ function node_invoke(&$node, $hook, $arg = 0) { } if (function_exists($function)) { - return ($arg ? $function($node, $arg) : $function($node)); + return ($function($node, $a2, $a3, $a4)); } } @@ -264,7 +264,7 @@ function node_load($conditions, $revision = -1) { ** results to the node or overwrite some values: */ - if ($extra = module_invoke($node->type, "load", $node)) { + if ($extra = node_invoke($node, "load")) { foreach ($extra as $key => $value) { $node->$key = $value; } @@ -445,14 +445,9 @@ function node_access($op, $node = 0) { $type = $node; } - $function = $type ."_access"; - - if (function_exists($function)) { - return $function($op, $node); - } - else { - return 0; - } + // Ideally this would be a node_invoke, but the access hook takes + // the $op parameter before the $node parameter so we can't do that. + return module_invoke ($type, "access", $op, $node); } function node_perm() { @@ -597,10 +592,7 @@ function node_admin_edit($node) { /* ** Display the node form extensions: */ - - foreach (module_list() as $name) { - $output .= module_invoke($name, "node_link", $node); - } + $output .= implode("\n", module_invoke_all("node_link", $node)); return $output; @@ -1179,14 +1171,8 @@ function node_form($edit, $error = NULL) { // Prepend extra node form: $form = implode("", module_invoke_all("nodeapi", $edit, "form pre", $error)); - /* - ** Get the node specific bits: - */ - - $function = $edit->type ."_form"; - if (function_exists($function)) { - $form .= $function($edit, $help, $error, $param); - } + // Get the node specific bits: + $form .= node_invoke($edit, "form", $help, $error, $param); // Append extra node form: $form .= implode("", module_invoke_all("nodeapi", $edit, "form post", $error)); |