[drupal-docs] [bug] Nodeapi load operation drupaldocs
chx
drupal-docs at drupal.org
Fri Oct 21 17:11:15 UTC 2005
Issue status update for
http://drupal.org/node/33876
Post a follow up:
http://drupal.org/project/comments/add/33876
Project: Documentation
Version: <none>
Component: Developer Guide
Category: bug reports
-Priority: critical
+Priority: normal
Assigned to: Anonymous
Reported by: Fool2
Updated by: chx
Status: active
found a cvs capable server, fixed HEAD. Someone fix 4.6 plz
chx
Previous comments:
------------------------------------------------------------------------
Wed, 12 Oct 2005 18:01:40 +0000 : Fool2
Under nodeapi in drupaldocs, the return value for the load operation is
listed as "The "load" operation should return an object containing
extra fields to be merged into the node object. "
http://drupaldocs.org/api/4.6/function/hook_nodeapi
However, when I return a value like so from a module:
case "load":
$obj = new stdclass;
$obj->foo = "bar";
return $obj;
break;
$node->foo is not defined when the node is loaded. Now, this means the
doc either has to be more specific about how the object is merged, or
is simply wrong.
The implementations I have seen (and the ones I have gotten to work
myself) all are coded like so:
case "load":
$node->foo="bar";
break;
Anybody have any input on this confusion?
------------------------------------------------------------------------
Wed, 12 Oct 2005 20:36:24 +0000 : Fool2
Did some more research...
if ($extra = node_invoke_nodeapi($node, 'load')) {
foreach ($extra as $key => $value) {
$node->$key = $value;
}
}
I'm not sure what this means exactly... does it mean it will need an
array?
Or does it mean that my variable would be registered as $node->obj->foo
or $node->obj['foo']?
I'm sure a lot of less experienced people like me are running into this
ambiguity.
------------------------------------------------------------------------
Wed, 12 Oct 2005 20:44:55 +0000 : dado
Fool2,
I think the documentation is misleading here. I think the hook_nodeapi
operation "load" does not need a return value. Rather, simply add the
desired fields to the $node object, as you do here
case "load":
$node->foo="bar";
break;
dado
------------------------------------------------------------------------
Wed, 12 Oct 2005 21:10:44 +0000 : pz
If I remember correctly there is an error in the docs regarding load for
nodeapi, if you return an array instead of an object I think it works as
documented.
------------------------------------------------------------------------
Sun, 16 Oct 2005 23:47:25 +0000 : drewish
to second what pz said, i've had luck returning an array. (without
actually researching it,) my recollection is that whatevery you return
gets array_merged.
More information about the drupal-docs
mailing list